"Hai, Amigo."

"Hei, Rishi."

"Ellie memberitahu saya anda mahukan lebih banyak contoh koleksi. Saya akan memberikan anda beberapa. Berikut ialah senarai koleksi dan antara muka:"

Antara muka Kelas/pelaksanaan Penerangan
Senaraikan  ArrayList  Senaraikan
 LinkedList  Senaraikan
 vektor  vektor
 Timbunan  Timbunan
 Tetapkan    HashSet  Tetapkan
 TreeSet  Tetapkan
 SortedSet  Set diisih
Peta  HashMap Peta/kamus
 Peta Pokok  Peta/kamus
 Peta Isih  Kamus yang diisih
 Hashtable  Hash-table

"Hmm. Agak banyak. Empat senarai, tiga set, dan empat peta."

"Ya, semuanya adalah pelaksanaan berbeza bagi antara muka Senarai, Set dan Peta."

"Apakah perbezaan antara pelaksanaan ini?"

"Itu betul-betul apa yang kita akan bincangkan hari ini. Sabar sahaja."

"Ada apa-apa soalan lain?"

" Saya tahu bagaimana untuk memaparkan senarai pada skrin. Bagaimanakah cara untuk saya memaparkan Set atau Peta?"

"Elemen Senarai mempunyai susunan yang ditetapkan, jadi anda hanya boleh menggunakan indeks untuk memaparkannya. Untuk Set atau Peta, tiada susunan khusus. Malah, susunan elemennya boleh berubah apabila item dipadamkan atau baharu item ditambah."

"Menakjubkan."

"Inilah sebabnya objek khas, dipanggil iterator , dicipta untuk berfungsi dengan elemen koleksi. Mereka membenarkan anda menelusuri semua elemen dalam koleksi, walaupun jika objek tersebut hanya mempunyai nama dan bukannya indeks (Peta), atau bukan nama mahupun indeks ( Tetapkan)."

"Berikut adalah beberapa contoh:"

Paparkan elemen 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);
    }
}
 
Paparkan elemen Senarai
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);
    }
}
Paparkan 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);
    }
}

"Wah. Saya tertanya-tanya apa maksud semua itu."

"Ia sebenarnya agak mudah. ​​Pertama, kita mendapat objek khas, iterator, daripada koleksi. Iterator hanya mempunyai dua kaedah.

1. Kaedah next() mengembalikan elemen seterusnya dalam koleksi.

2. Kaedah hasNext() menyemak sama ada masih terdapat elemen yang belum dikembalikan oleh next()."

"OK. Saya rasa ia semakin jelas sekarang. Biar saya cuba ulang balik kepada awak apa yang saya faham."

"Jadi... Mula-mula, kita perlu memanggil kaedah iterator() pada koleksi untuk mendapatkan objek lelaran ajaib ini."

"Kemudian kami mendapat elemen satu demi satu selagi masih ada lagi. Kami mendapatkan elemen seterusnya dalam koleksi dengan memanggil next(), dan kami menyemak sama ada masih terdapat elemen dalam koleksi dengan memanggil hasNext() pada iterator. Betul ke?"

"Ya, lebih kurang. Tetapi tunggu bahagian yang baik."

"Java mempunyai notasi trengkas untuk bekerja dengan iterator. Mengikut corak while dan for , satu lagi pernyataan khas telah ditambah: untuk setiap . Ia juga ditunjukkan menggunakan kata kunci untuk ."

"Pernyataan untuk setiap satu hanya digunakan untuk bekerja dengan koleksi dan bekas. Ia menggunakan lelaran secara tersirat, tetapi kami hanya melihat elemen yang dikembalikan."

"Biar saya tunjukkan kepada anda cara panjang dan singkat untuk bekerja dengan iterator:"

Tangan panjang
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);
  }
}
Pendek kata
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 bahawa perkataan yang diserlahkan dalam warna merah atau hijau tiada di bahagian kanan. Malah, tiga baris digantikan dengan satu:"

Tangan panjang
Iterator&ltString> iterator = set.iterator();
while (iterator.hasNext())
{
    String text = iterator.next();
Pendek kata

for (String text : set)


"Ini kelihatan cantik. Saya lebih suka dengan cara ini."

"Mari kita lihat versi ringkas contoh di atas:"

Paparkan elemen 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);
    }
}
Paparkan elemen Senarai
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);
    }
}
Paparkan 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 awak bercakap!"

"Saya gembira anda menyukainya."