LinkedList โครงสร้างข้อมูลมี โหนด (nodes) เชื่อมต่อแบบลำดับด้วย pointer เป็น Dynamic array จัดสรรหน่วยความจำแยกต่อโหนด แต่ละโหนดมี 2 ฟิลด์: data (เก็บข้อมูล) และ next (ชี้ไปโหนดถัดไป) วนลูป LinkedList ได้ 3 วิธี
1. ใช้ Iterator
วนลูปผ่านอินเตอร์เฟซ Iterator
import java.util.*;
public class LinkedListIteratorTest {
public static void main(String[] args) {
List<String> list = new LinkedList<>();
list.add("Kohli"); list.add("Morgan"); list.add("Williamson");
list.add("Smith"); list.add("Kohli");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
Kohli
Morgan
Williamson
Smith
Kohli
2. ใช้ ListIterator
วนลูปผ่าน ListIterator (รองรับสองทิศทาง)
import java.util.*;
public class LinkedListWithListIteratorTest {
public static void main(String[] args) {
List<String> list = new LinkedList<>();
list.add("Kohli"); list.add("Morgan"); list.add("Williamson");
list.add("Smith"); list.add("Kohli");
ListIterator<String> li = list.listIterator();
while (li.hasNext()) {
System.out.println(li.next());
}
}
}
Kohli
Morgan
Williamson
Smith
Kohli
3. ใช้ For-each Loop
วนลูปแบบ Enhanced for loop (สะดวกที่สุด)
import java.util.*;
public class LinkedListForEachTest {
public static void main(String[] args) {
List<String> list = new LinkedList<>();
list.add("Kohli"); list.add("Morgan"); list.add("Williamson");
list.add("Smith"); list.add("Kohli");
for (String str : list) {
System.out.println(str);
}
}
}
Kohli
Morgan
Williamson
Smith
Kohli
แนะนำ: For-each สะดวกที่สุด ListIterator เมื่อต้องการนำทางย้อนกลับหรือแก้ไขระหว่างวนลูป