Java Iterator
Java Iterator
An Iterator
คืออ็อบเจ็กต์ที่สามารถใช้เพื่อวนรอบคอลเล็กชันเช่นArrayList
และHashSet มันถูกเรียกว่า "ตัววนซ้ำ" เพราะ "การวนซ้ำ" เป็นศัพท์เทคนิคสำหรับการวนซ้ำ
ในการใช้ Iterator คุณต้องนำเข้าจากjava.util
แพ็คเกจ
รับตัววนซ้ำ
สามารถiterator()
ใช้เมธอดเพื่อรับIterator
คอลเล็กชันใดก็ได้:
ตัวอย่าง
// Import the ArrayList class and the Iterator class
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Make a collection
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// Get the iterator
Iterator<String> it = cars.iterator();
// Print the first item
System.out.println(it.next());
}
}
วนซ้ำผ่านคอลเล็กชัน
ในการวนรอบคอลเล็กชัน ให้ใช้hasNext()
and next()
วิธีการของIterator
:
ตัวอย่าง
while(it.hasNext()) {
System.out.println(it.next());
}
การนำรายการออกจากคอลเลกชัน
ตัววนซ้ำได้รับการออกแบบมาเพื่อให้เปลี่ยนคอลเลกชั่นที่วนซ้ำได้อย่างง่ายดาย remove()
เมธอดสามารถลบรายการออกจากคอลเลกชันขณะวนซ้ำได้
ตัวอย่าง
ใช้ตัววนซ้ำเพื่อลบตัวเลขที่น้อยกว่า 10 ออกจากคอลเลกชัน:
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(12);
numbers.add(8);
numbers.add(2);
numbers.add(23);
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()) {
Integer i = it.next();
if(i < 10) {
it.remove();
}
}
System.out.println(numbers);
}
}
หมายเหตุ:การพยายามลบรายการโดยใช้for loopหรือ for-each loopจะไม่ทำงานอย่างถูกต้องเนื่องจากคอลเล็กชันมีการเปลี่ยนแปลงขนาดในเวลาเดียวกันกับที่โค้ดพยายามวนซ้ำ