Iterator Java

W tym samouczku nauczymy się interfejsu Java Iterator na przykładzie.

IteratorInterfejs zbiorach ramach Java pozwala na dostęp z elementów kolekcji. Ma podinterfejs ListIterator.

Wszystkie kolekcje Java zawierają iterator()metodę. Ta metoda zwraca wystąpienie iteratora używanego do iteracji po elementach kolekcji.

Metody iteratora

IteratorInterfejs zapewnia 4 metod, które mogą być wykorzystywane do wykonywania różnych operacji na elementach zbiorów.

  • hasNext()- zwraca, truejeśli w kolekcji istnieje element
  • next() - zwraca następny element kolekcji
  • remove() - usuwa ostatni element zwrócony przez next()
  • forEachRemaining() - wykonuje określoną akcję dla każdego pozostałego elementu kolekcji

Przykład: implementacja Iteratora

W poniższym przykładzie, wdrożyliśmy hasNext(), next(), remove()oraz forEachRemining()metod Iteratorinterfejsu w liście tablicy.

 import java.util.ArrayList; import java.util.Iterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of Iterator Iterator iterate = numbers.iterator(); // Using the next() method int number = iterate.next(); System.out.println("Accessed Element: " + number); // Using the remove() method iterate.remove(); System.out.println("Removed Element: " + number); System.out.print("Updated ArrayList: "); // Using the hasNext() method while(iterate.hasNext()) ( // Using the forEachRemaining() method iterate.forEachRemaining((value) -> System.out.print(value + ", ")); ) ) ) 

Wynik

 ArrayList: (1, 3, 2) Uzyskany element: 1 Usunięty element: 1 Zaktualizowany ArrayList: 3, 2, 

W powyższym przykładzie zwróć uwagę na stwierdzenie:

 iterate.forEachRemaining((value) -> System.put.print(value + ", ")); 

Tutaj przekazaliśmy wyrażenie lambda jako argument forEachRemaining()metody.

Teraz metoda wypisze wszystkie pozostałe elementy listy tablic.

Interesujące artykuły...