"Hai, Amigo."

"Hei, Resi."

"Ellie bilang kamu ingin lebih banyak contoh koleksi. Aku akan memberimu beberapa. Ini daftar koleksi dan antarmuka:"

Antarmuka Kelas/implementasi Keterangan
Daftar  ArrayList  Daftar
 LinkedList  Daftar
 Vektor  Vektor
 Tumpukan  Tumpukan
 Mengatur    HashSet  Mengatur
 TreeSet  Mengatur
 SortedSet  Diurutkan diatur
Peta  HashMap Peta/kamus
 Peta Pohon  Peta/kamus
 SortedMap  Kamus yang diurutkan
 Hashtable  Tabel hash

"Hmm. Cukup banyak. Empat daftar, tiga set, dan empat peta."

"Ya, mereka semua adalah implementasi berbeda dari antarmuka Daftar, Set, dan Peta."

"Apa perbedaan antara implementasi ini?"

"Itulah tepatnya yang akan kita bicarakan hari ini. Sabar saja."

"Apakah kamu punya pertanyaan lain?"

"Saya tahu cara menampilkan daftar di layar. Bagaimana cara menampilkan Set atau Peta?"

"Elemen Daftar memiliki urutan yang ditetapkan, jadi Anda bisa menggunakan indeks untuk menampilkannya. Untuk Set atau Peta, tidak ada urutan khusus. Faktanya, urutan elemennya dapat berubah saat item dihapus atau baru item ditambahkan."

"Luar biasa."

"Inilah sebabnya objek khusus, yang disebut iterators , diciptakan untuk bekerja dengan elemen koleksi. Mereka memungkinkan Anda menelusuri semua elemen dalam koleksi, bahkan jika mereka hanya memiliki nama, bukan indeks (Peta), atau tidak ada nama maupun indeks ( Mengatur)."

"Ini beberapa contohnya:"

Menampilkan elemen dari Set
 public static void main(String[] args)
{
    Set&ltString> set = new HashSet&ltString>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

     // Get an iterator for the set
     Iterator&ltString> iterator = set.iterator();

    while (iterator.hasNext())        // Check if there is another element
    {
       // Get the current element and move to the next one
       String text = iterator.next();

        System.out.println(text);
    }
}
 
Menampilkan elemen Daftar
public static void main(String[] args)
{
    List&ltString> list = new ArrayList&ltString>();
    list.add("Rain");
    list.add("In");
    list.add("Spain");

    Iterator&ltString> iterator = list.iterator();// Get an iterator for the list

    while (iterator.hasNext())      // Check if there is another element   
    {
        // Get the current element and move to the next one
        String text = iterator.next();

        System.out.println(text);
    }
}
Menampilkan elemen Peta
public static void main(String[] args)
{
    // All elements are stored in pairs
    Map<String, String> map = new HashMap<String, String>();
    map.put("first", "Rain");
    map.put("second", "In");
    map.put("third", "Spain");

    Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();

   while (iterator.hasNext())
    {
        // Get a key-value pair
        Map.Entry<String, String> pair = iterator.next();
        String key = pair.getKey();            // Key
        String value = pair.getValue();        // Value
        System.out.println(key + ":" + value);
    }
}

"Wow. Aku ingin tahu apa artinya semua itu."

"Ini sebenarnya cukup sederhana. Pertama, kita mendapatkan objek khusus, sebuah iterator, dari koleksi. Iterator hanya memiliki dua metode.

1. Metode next() mengembalikan elemen berikutnya dalam koleksi.

2. Metode hasNext() memeriksa apakah masih ada elemen yang belum dikembalikan oleh next()."

"Oke. Saya pikir sekarang sudah semakin jelas. Izinkan saya mencoba mengulang apa yang saya pahami."

"Jadi... Pertama, kita perlu memanggil metode iterator() pada koleksi untuk mendapatkan objek magic iterator ini."

"Kemudian kita mendapatkan elemen satu per satu selama masih ada yang tersisa. Kita mendapatkan elemen berikutnya dalam koleksi dengan memanggil next(), dan kita memeriksa apakah masih ada elemen dalam koleksi dengan memanggil hasNext() pada iterator. Apakah itu benar?"

"Ya, kurang lebih. Tapi tunggu bagian baiknya."

"Java memiliki notasi steno untuk bekerja dengan iterator. Mengikuti pola while dan for , satu lagi pernyataan khusus telah ditambahkan: for each . Itu juga ditunjukkan dengan menggunakan kata kunci for ."

"Pernyataan for-each hanya digunakan untuk bekerja dengan koleksi dan wadah. Ia menggunakan iterator secara implisit, tetapi kita hanya melihat elemen yang dikembalikan."

"Biar saya tunjukkan cara singkat dan cepat untuk bekerja dengan iterator:"

Tulisan tangan
public static void main(String[] args)
{
  Set&ltString> set = new HashSet&ltString>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

    Iterator&ltString> iterator = set.iterator();
  while (iterator.hasNext())
  {
    String text = iterator.next();
    System.out.println(text);
  }
}
Steno
public static void main(String[] args)
{
    Set&ltString> set = new HashSet&ltString>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

   for (String text : set)   
    {
        System.out.println(text);
    }
}


"Perhatikan bahwa kata-kata yang disorot dengan warna merah atau hijau tidak ada di bagian kanan. Faktanya, tiga baris diganti dengan satu:"

Tulisan tangan
Iterator&ltString> iterator = set.iterator();
while (iterator.hasNext())
{
    String text = iterator.next();
Steno

for (String text : set)


"Ini terlihat cantik. Aku lebih suka seperti ini."

"Mari kita lihat versi singkat dari contoh di atas:"

Menampilkan elemen dari Set
public static void main(String[] args)
{
    Set&ltString> set = new HashSet&ltString>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

    for (String text : set)   
    {
        System.out.println(text);
    }
}
Menampilkan elemen Daftar
public static void main(String[] args)
{
    List&ltString> list = new ArrayList&ltString>();
    list.add("Rain");
    list.add("In");
    list.add("Spain");

     for (String text : list)        
    {
        System.out.println(text);
    }
}
Menampilkan elemen Peta
public static void main(String[] args)
{
    Map<String, String> map = new HashMap<String, String>(); 
    map.put("first", "Rain");
    map.put("second", "In");
    map.put("third", "Spain");

    for (Map.Entry<String, String> pair : map.entrySet())
    {
        String key = pair.getKey();                      // Key
        String value = pair.getValue();                  // Value
        System.out.println(key + ":" + value);
    }
}

"Sekarang kamu bicara!"

"Aku senang kamu menyukainya."