logo

Iterators Java valodā

Iterators Java ir viens no visbiežāk izmantotajiem kursori Java kolekciju sistēmā . To izmanto, lai šķērsotu vai iterētu kolekcijas elementus pa vienam.

  • To izmanto elementu pārvietošanai tikai uz priekšu.
  • Droši noņem elementus šķērsošanas laikā, izmantojot Remove().
  • Iterators ir universāls kursors, kas attiecas uz visiem kolekcijas veidiem — sarakstu kopu un rindu.

Iteratora deklarācija

publiskā interfeisa iterators

Šeit E apzīmē atkārtojamo elementu veidu.



Iteratora objekta izveide

Iteratora objekts tiek izveidots, kolekcijas objektā izsaucot iterator() metodi. Šeit mēs izmantosim iteratoru, lai šķērsotu un izdrukātu katru elementu ArrayList .

sakārtot pēc nejaušības principa SQL

Kolekcijanosaukumi = jauns ArrayList<>();
Iteratorsitr = nosaukumi.iterators();

Java
import java.util.ArrayList; import java.util.Iterator; public class Geeks {  public static void main(String[] args) {    // Create an ArrayList and add some elements  ArrayList<String> al = new ArrayList<>();  al.add('A');  al.add('B');  al.add('C');  // Obtain an iterator for the ArrayList  Iterator<String> it = al.iterator();  // Iterate through the elements and print each one  while (it.hasNext()) {    // Get the next element  String n = it.next();   System.out.println(n);   }  } } 

Izvade
A B C 

Iteratora hierarhija

Iterators ir daļa no java.util pakotne un to ievieš visas kolekcijas klases, izmantojot to apakšinterfeisus.

listiterator_extends_iterator_' title=Iterators-kursors

Iteratora saskarnes metodes

Iteratora saskarne definē trīs tālāk norādītās metodes.

  • hasNext(): Atgriež patiesu, ja iterācijā ir vairāk elementu.
  • nākamais (): Atgriež nākamo iterācijas elementu. Tas met NoSuchElementException ja vairs nav neviena elementa.
  • noņemt (): Noņem pēdējo elementu, ko atgrieza next(). Šo metodi var izsaukt tikai vienu reizi vienā izsaukumā uz next().

Piezīme : metode remove() var radīt divus izņēmumus, proti:

Iekšējais darbs

Šajā sadaļā mēs centīsimies saprast, kā Java Iterator un tā metodes darbojas iekšēji. Lai saprastu šo funkcionalitāti, izmantosim šo LinkedList objektu.

ierakstiet json failā python

1. darbība: Tagad izveidosim iteratora objektu saraksta objektā, kā parādīts zemāk:

IteratorscityIterator = pilsētas.iterators();

"CitiesIteartor" iterators izskatīsies šādi:

Java iteratora 1. darbība' loading='lazy' title=1. darbība

Šeit Iteratora kursors ir norādīts pirms saraksta pirmā elementa.

2. darbība: Tagad mēs izpildīsim šādu koda fragmentu.

cityIterator.hasNext();
cityIterator.next();

izlases numurs gen java
Java iteratora 2. darbība' loading='lazy' title=2. darbība

Palaižot iepriekš minēto koda fragmentu, iteratora kursors norāda uz pirmo elementu sarakstā, kā parādīts iepriekš redzamajā diagrammā.

3. darbība: Tagad mēs izpildīsim šādu koda fragmentu.

cityIterator.hasNext();
cityIterator.next();

Java iteratora 3. darbība' loading='lazy' title=3. darbība


Palaižot iepriekš minēto koda fragmentu, Iteratora kursors norāda uz otro elementu sarakstā, kā parādīts iepriekš redzamajā diagrammā.

sagatavoties testa mockito

4. darbība: Veiciet šo procesu, lai sasniegtu iteratora kursoru līdz saraksta beigu elementam.

Java iteratora darbība n' loading='lazy' title=4. darbība

5. darbība: Pēc pēdējā elementa nolasīšanas, ja palaižam tālāk norādīto koda fragmentu, tas atgriež nepatiesu vērtību.

cityIterator.hasNext();

Java Iterator beigās' loading='lazy' title=

Kā Iteratora kursors norāda uz saraksta pēdējo elementu hasNext() metode atgriež nepatiesu vērtību.

Piezīme: Java Iterator atbalsta tikai uz priekšu vērstu iterāciju, tāpēc to sauc par vienvirziena kursoru. Turpretim ListIterator ir divvirzienu, kas ļauj pārvietoties abos virzienos.

Java-Ilterator-6' loading='lazy' title=Java iterators: virziens uz priekšu

Piemērs: Šeit mēs izmantosim Iteratoru, lai šķērsotu un noņemtu nepāra elementus no ArrayList.

Java
import java.util.ArrayList; import java.util.Iterator; public class Geeks {  public static void main(String[] args) {    // Creating an ArrayList of Integer type  ArrayList<Integer> al = new ArrayList<>();  // Adding elements to the ArrayList  for (int i = 0; i < 10; i++) {  al.add(i);  }  // Printing the original list  System.out.println('Original List: ' + al);  // Creating an Iterator for the ArrayList  Iterator<Integer> itr = al.iterator();  // Iterating through the list and removing odd elements  while (itr.hasNext()) {    // Getting the next element  int i = itr.next();     System.out.print(i + ' ');   // Removing odd elements  if (i % 2 != 0) {  itr.remove();  }  }  System.out.println();  // Printing the modified list after removal of odd elements  System.out.println('Modified List: ' + al);  } } 

Izvade
Original List: [0 1 2 3 4 5 6 7 8 9] 0 1 2 3 4 5 6 7 8 9 Modified List: [0 2 4 6 8] 

Paskaidrojums: Iepriekš minētajā piemērā mēs izveidojam veselu skaitļu ArrayList, pēc tam atkārtojam to, izmantojot iteratoru, un noņem visus nepāra skaitļus. Tas izdrukā sarakstu pirms un pēc nepāra elementu noņemšanas un izdrukā modificēto sarakstu tikai ar pāra skaitļiem.