Java Iterator
Iterator merupakan object yang dapat digunakan untuk melakukan iterasi pada collection, seperti ArrayList dan HashSet. Iterator disebut “iterator” karena “iterasi” merupakan istilah teknis untuk pengulangan, yaitu mengakses nilai-nilai yang disimpan pada collection satu per-satu. Untuk menggunakan iterator, Anda harus mengimportnya dari package java.util.
Mendapatkan Iterator
Method iterator() dapat digunakan untuk memperoleh sebuah Iterator untuk banyak collection. Contoh :
// Mengimport class ArrayList dan class Iterator
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Membuat collection
ArrayList<String> mobil = new ArrayList<String>();
mobil.add("Volvo");
mobil.add("BMW");
mobil.add("Ford");
mobil.add("Mazda");
// Mendapatkan iterator
Iterator<String> it = mobil.iterator();
// Mencetak item pertama
System.out.println(it.next());
}
}
Output :
Volvo
Loop Melalui Collection
Untuk melakukan iterasi sebuah collection, gunakan method hasNext() dan next() dari Iterator. Contoh :
// Mengimport class ArrayList dan class Iterator
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Membuat collection
ArrayList<String> mobil = new ArrayList<String>();
mobil.add("Volvo");
mobil.add("BMW");
mobil.add("Ford");
mobil.add("Mazda");
// Mendapatkan iterator
Iterator<String> it = mobil.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
}
}
Output :
Volvo
BMW
Ford
Mazda
Menghapus Item Dari Collection
Iterator dirancang agar mudah mengubah collection yang melakukan iterasi melalui mereka. Method remove() dapat menghapus item dari sebuah collection saat melakukan iterasi. Contoh :
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> nomor = new ArrayList<Integer>();
nomor.add(12);
nomor.add(8);
nomor.add(2);
nomor.add(23);
Iterator<Integer> it = nomor.iterator();
while(it.hasNext()) {
Integer i = it.next();
if (i < 10) {
it.remove();
}
}
System.out.println(nomor);
}
}
Output :
[12, 23]
Catatan: Mencoba menghapus item menggunakan for-loop atau for-each loop tidak akan bekerja dengan baik, dan tidak disarankan, karena collection berubah ukurannya pada saat yang sama ketika kode mencoba untuk melakukan loop.
Tutorial sebelumnya : Java Hashset
Tutorial setelahnya : Java Wrapper Class
Semua Tutorial JAVA : Tutorial JAVA