"Merhaba, Amigo."

"Merhaba Rişi."

"Ellie bana daha fazla koleksiyon örneği istediğini söyledi. Sana birkaç tane vereceğim. İşte koleksiyonların ve arayüzlerin bir listesi:"

Arayüz sınıf/uygulama Tanım
Liste  Dizi Listesi  Liste
 Bağlantılı liste  Liste
 Vektör  Vektör
 Yığın  Yığın
 Ayarlamak    HashSet  Ayarlamak
 Ağaç Kümesi  Ayarlamak
 SıralanmışKüme  sıralanmış küme
Harita  HashMap Harita/sözlük
 Ağaç Haritası  Harita/sözlük
 SıralanmışHarita  sıralanmış sözlük
 hash tablosu  Hash tablosu

"Hmm. Bu oldukça fazla. Dört liste, üç set ve dört harita."

"Evet, hepsi List, Set ve Map arayüzlerinin farklı uygulamalarıdır."

"Bu uygulamalar arasındaki fark nedir?"

"Bugün tam olarak bunun hakkında konuşacağız. Sadece sabırlı ol."

"Başka sorunuz var mı?"

" Ekranda bir listeyi nasıl görüntüleyeceğimi biliyorum. Bir Set veya Haritayı nasıl görüntülerim?"

"Bir Listenin öğelerinin belirli bir sırası vardır, bu nedenle onları görüntülemek için bir dizin kullanabilirsiniz. Bir Küme veya Harita için belirli bir sıra yoktur. Aslında, öğeler silindikçe veya yenileri eklendikçe öğelerinin sırası değişebilir. maddeler eklendi."

"İnanılmaz."

"Bu nedenle yineleyiciler adı verilen özel nesneler, koleksiyon öğeleriyle çalışmak üzere icat edildi. Dizinler (Harita) yerine yalnızca adları olsa veya ne adlar ne de dizinler ( Ayarlamak)."

"İşte bazı örnekler:"

Bir Kümenin görüntü öğeleri
public static void main(String[] args)
{
    Set<String> set = new HashSet<String>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

     // Get an iterator for the set
     Iterator<String> 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);
    }
}
2
Görev
Java Syntax,  seviyeders
Kilitli
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
Bir Listenin öğelerini görüntüleme
public static void main(String[] args)
{
    List<String> list = new ArrayList<String>();
    list.add("Rain");
    list.add("In");
    list.add("Spain");

    Iterator<String> 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);
    }
}
Bir Haritanın öğelerini görüntüleme
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);
    }
}

"Vay canına. Tüm bunların ne anlama geldiğini merak ediyorum."

"Aslında oldukça basit. İlk olarak, koleksiyondan özel bir nesne, bir yineleyici elde ederiz. Yineleyicinin yalnızca iki yöntemi vardır.

1. next() yöntemi, koleksiyondaki sonraki öğeyi döndürür.

2. hasNext() yöntemi, next() tarafından döndürülmemiş öğelerin olup olmadığını kontrol eder."

"Tamam. Sanırım şimdi daha açık hale geliyor. Size anladığım şeyi tekrar etmeye çalışayım."

"Öyleyse... İlk olarak, bu sihirli yineleyici nesnesini elde etmek için bir koleksiyonda iterator() yöntemini çağırmamız gerekiyor."

"Ardından, alınacak hiç öğe kalmadığı sürece öğeleri birer birer alırız. next()'i çağırarak koleksiyondaki bir sonraki öğeyi alırız ve koleksiyonda hala öğeler olup olmadığını hasNext()'i çağırarak kontrol ederiz. yineleyici. Bu doğru mu?"

"Evet, aşağı yukarı. Ama iyi kısmı bekle."

"Java, yineleyicilerle çalışmak için kısa gösterime sahiptir. while ve for kalıbının ardından , bir özel ifade daha eklendi: for every . Ayrıca for anahtar sözcüğü kullanılarak belirtilir ."

"for-each ifadesi yalnızca koleksiyonlar ve kapsayıcılarla çalışmak için kullanılır. Örtülü olarak bir yineleyici kullanır, ancak yalnızca döndürülen öğeyi görürüz."

"Size bir yineleyici ile çalışmanın uzun ve kısa yollarını göstereyim:"

uzun el
public static void main(String[] args)
{
  Set<String> set = new HashSet<String>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

    Iterator<String> iterator = set.iterator();
  while (iterator.hasNext())
  {
    String text = iterator.next();
    System.out.println(text);
  }
}
Kısa gösterim
public static void main(String[] args)
{
    Set<String> set = new HashSet<String>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

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

"Kırmızı veya yeşil ile vurgulanan kelimelerin sağ kısımda bulunmadığına dikkat edin. Aslında, üç satır bir ile değiştirilmiştir:"

uzun el
Iterator<String> iterator = set.iterator();
while (iterator.hasNext())
{
    String text = iterator.next();
Kısa gösterim
for (String text : set)

"Bu harika görünüyor. Böylesi daha çok hoşuma gitti."

"Yukarıdaki örneklerin kısa versiyonuna bakalım:"

Bir Kümenin görüntü öğeleri
public static void main(String[] args)
{
    Set<String> set = new HashSet<String>();
    set.add("Rain");
    set.add("In");
    set.add("Spain");

    for (String text : set)
    {
        System.out.println(text);
    }
}
Bir Listenin öğelerini görüntüleme
public static void main(String[] args)
{
    List<String> list = new ArrayList<String>();
    list.add("Rain");
    list.add("In");
    list.add("Spain");

     for (String text : list)
    {
        System.out.println(text);
    }
}
Bir Haritanın öğelerini görüntüleme
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);
    }
}

"Şimdi konuşuyorsun!"

"Beğendiğine sevindim."