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 alapja | iterátor | ListIterator |
---|---|---|
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áad | Az Iterator nem tud elemeket hozzáadni a gyűjteményhez. | A ListIteror elemeket adhat hozzá a gyűjteményhez. |
Módosít | Az 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. |
Áthalad | Az 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. |
Index | Az 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
- 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.
- 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.
- 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.
- 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.
- 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.