— Bună, Amigo.

— Hei, Rishi.

"Ellie mi-a spus că vrei mai multe exemple de colecții. Îți voi da câteva. Iată o listă de colecții și interfețe:"

Interfață Clasa/implementare Descriere
Listă  ArrayList  Listă
 LinkedList  Listă
 Vector  Vector
 Grămadă  Grămadă
 A stabilit    HashSet  A stabilit
 TreeSet  A stabilit
 SortedSet  Set sortat
Hartă  HashMap Hartă/dicționar
 Harta copacului  Hartă/dicționar
 SortedMap  Dicționar sortat
 Hashtable  Masa de hash

"Hmm. Sunt destul de multe. Patru liste, trei seturi și patru hărți."

„Da, toate sunt implementări diferite ale interfețelor List, Set și Map.”

„Care este diferența dintre aceste implementări?”

„Exact despre asta vom vorbi astăzi. Ai răbdare”.

"Mai ai și alte întrebări?"

" Știu cum să afișez o listă pe ecran. Cum afișez un set sau o hartă?"

„Elementele unei liste au o ordine stabilită, așa că puteți utiliza doar un index pentru a le afișa. Pentru un set sau o hartă, nu există o ordine specifică. De fapt, ordinea elementelor lor se poate schimba pe măsură ce elementele sunt șterse sau noi. articolele sunt adăugate.”

"Uimitor."

„De aceea, obiectele speciale, numite iteratoare , au fost inventate pentru a lucra cu elemente de colecție. Vă permit să parcurgeți toate elementele dintr-o colecție, chiar dacă au doar nume în loc de indici (Hartă), sau nici nume, nici indici ( A stabilit)."

"Aici sunt cateva exemple:"

Afișează elementele unui 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);
    }
}
2
Sarcină
Java Syntax,  nivellecţie
Blocat
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.
Afișează elementele unei liste
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);
    }
}
Afișează elementele unei hărți
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);
    }
}

— Uau. Mă întreb ce înseamnă toate astea.

„De fapt, este destul de simplu. În primul rând, obținem un obiect special, un iterator, din colecție. Iteratorul are doar două metode.

1. Metoda next() returnează următorul element din colecție.

2. Metoda hasNext() verifică dacă există încă elemente care nu au fost returnate de next()."

"OK. Cred că acum devine mai clar. Lasă-mă să încerc să-ți repet ceea ce am înțeles."

"Deci... În primul rând, trebuie să apelăm metoda iterator() pe o colecție pentru a obține acest obiect iterator magic."

„Atunci obținem elemente unul câte unul, atâta timp cât mai sunt de obținut. Obținem următorul element din colecție apelând next() și verificăm dacă mai există elemente în colecție apelând hasNext() pe iterator. Este corect?"

"Da, mai mult sau mai puțin. Dar așteptați partea bună."

"Java are notație prescurtată pentru lucrul cu iteratoare. Urmând modelul while și for , a fost adăugată încă o declarație specială: pentru fiecare . Este, de asemenea, indicată folosind cuvântul cheie pentru ."

„Instrucțiunea for-each este folosită doar pentru lucrul cu colecții și containere. Folosește implicit un iterator, dar vedem doar elementul returnat.”

„Permiteți-mi să vă arăt modalitățile de a lucra cu un iterator:”

Scriere obişnuită
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);
  }
}
Stenografia
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);
    }
}

„Rețineți că cuvintele evidențiate cu roșu sau verde sunt absente în partea dreaptă. De fapt, trei linii sunt înlocuite cu una:”

Scriere obişnuită
Iterator&ltString> iterator = set.iterator();
while (iterator.hasNext())
{
    String text = iterator.next();
Stenografia
for (String text : set)

"Arata superb. Îmi place mult mai mult în acest fel."

„Să ne uităm la versiunea scurtă a exemplelor de mai sus:”

Afișează elementele unui 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);
    }
}
Afișează elementele unei liste
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);
    }
}
Afișează elementele unei hărți
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);
    }
}

— Acum vorbeşti!

"Ma bucur ca ti-a placut."