Ajánlott, 2024

Szerkesztő Választása

A különbség az Iterator és a ListIterator között Java-ban

Az Iterator és a ListIterator a két a Java kurzorai közül. Mind az Iterator, mind a ListIterator a J ava.Util csomagban található Gyűjtemény keretrendszer határozza meg. A ListIterator az Iterator interfész gyermekfelülete. Az Iterator és a ListIterator között a fő különbség az, hogy az Iterator csak az előremenő irányban halad át a kollekcióban lévő elemeket, míg a ListIterator az elrendezést az előre és hátra egyaránt el tudja mozdítani .

Beszéljünk néhány további különbségről az Iterator és a ListIterator között az alábbi táblázat segítségével.

Összehasonlító táblázat

Az összehasonlítás alapjaiterátorListIterator
AlapvetőAz Iterator csak egy előre haladó irányba haladhat az elemek között.A ListIterator az elemeket előre és hátrafelé haladhatja a gyűjteményben.
hozzáadAz Iterator nem tud elemeket hozzáadni a gyűjteményhez.A ListIteror elemeket adhat hozzá a gyűjteményhez.
MódosítAz Iterator nem tudja módosítani a gyűjtemény elemeit.A ListIterator a gyűjtemény () segítségével módosíthatja a gyűjtemény elemeit.
ÁthaladAz Iterator képes áthaladni a térképen, a listán és a készleten.A ListIterator csak az objektumok listázására képes.
IndexAz Iteratornak nincs módja a gyűjtemény elemének indexének beszerzésére.A ListIterator használatával indexet kaphat a gyűjtemény egy eleméről.

Az Iterator meghatározása

Az Iterator egy gyűjtemény keret kerete . A gyűjtőelemek áthaladására szolgál. Az Iterator lehetővé teszi, hogy minden egyes elemet egymás után elrendezzen, elemeket szerezzen a gyűjteményből, vagy eltávolítsa az elemeket a gyűjteményből. Észreveheti, hogy az Iterator használatával nem lehet módosítani a gyűjtemény egyik elemét.

Az Iterator rendelkezik egy iterator () módszerrel, amely visszaadja az iterátort a gyűjtemény kezdetének. Miután megkapta az iterátort a gyűjtemény kezdetéhez, akkor a gyűjtemény elemeinek áthaladásához hozzon létre egy hurkot, amely minden alkalommal, amikor a ciklust iterálja, hívja a következőt () . A hasNext (), ha igaz, akkor azt jelenti, hogy a következő elem a gyűjteményben van, és ha hamis lesz, akkor az összes elem áthalad. Ezután a hurok belsejében minden elemet beszerezhet egy gyűjteményben a következővel () . A következő () módszer a gyűjtemény következő elemét adja vissza.

Hátrány:

Az Iterator használatával csak egy előre haladó irányba haladhat.
Az Iterator használatával a gyűjtemény elemei nem módosíthatók vagy módosíthatók.

A ListIterator meghatározása

A ListIterator egy gyűjtemény keretrendszer, és kiterjeszti az Iterator felületet. A ListIterator használatával a kollekció elemeit előre és hátra is mozgathatja. A gyűjtemény bármely elemét hozzáadhatja, eltávolíthatja vagy módosíthatja . Röviden, azt mondhatjuk, hogy eltávolítja az Iterator hátrányait.

A ListIterator módszerei a következők:

hasNext () : Ha a visszaigazolás igaz, megerősíti, hogy több elem van a gyűjteményben.
next () : A lista következő elemeit adja vissza.
nextIndex () : A lista következő elemeinek indexét adja vissza.
hasPrevious () : Igaz, ha a gyűjteményben fordított irányban vannak elemek.
előző () : Visszaadja a gyűjtemény előző elemét.
previousIndex () : A gyűjtemény korábbi elemének indexét adja vissza.
eltávolítás () : Az elem törlése a gyűjteményből.
set () : Módosítja a gyűjtemény elemét.
add () : Az új elemet egy gyűjteményben adja hozzá.

Az Iterator és a ListIterator közötti különbségek

  1. Az Iterator és a ListIterator közötti alapvető különbség az, hogy mindkettő a kurzor, az Iterator csak előre irányba mozoghat a gyűjtemény elemei között. Másrészről a ListIterator mind előre, mind hátrafelé haladhat.
  2. Az iterátor használatával semmilyen elemet nem adhat hozzá a gyűjteményhez. De a ListIterator használatával elemeket adhat hozzá a gyűjteményhez.
  3. Az Iterator használatával nem távolíthat el egy elemet a gyűjteményből, ahol az Elem eltávolítása a gyűjteményből a ListIterator használatával.
  4. Az Iterator használatával minden olyan gyűjteményt átmásolhat, mint a Térkép, Lista, Készlet. De a ListIteror segítségével csak a megvalósított objektumok listáját lehet mozgatni.
  5. Egy elemet az Iterator segítségével lehet letölteni. De mivel a lista szekvenciális és indexalapú, a ListIterator használatával lekérhet egy elemet.

Következtetés:

A ListIterator használata akkor lehetséges, ha a List objektumot előre és hátra kell mozgatni. Másik esetben az Iterator-ot használhatja, mivel támogatja az összes típusú gyűjtő objektumot.

Top