Különbség a lista és a készlet között

Tartalomjegyzék:

Különbség a lista és a készlet között
Különbség a lista és a készlet között

Videó: Különbség a lista és a készlet között

Videó: Különbség a lista és a készlet között
Videó: MELYIK ORSZÁGÚTI KERÉKPÁRT VÁLASSZAM? Mi a különbség a versenyzős és a kényelmes geometria között? 2024, Június
Anonim

Kulcskülönbség – Lista vs készlet

A legtöbb programozási nyelv tömböket használ az azonos típusú adatok tárolására. A tömbök egyik fő hátránya, hogy a tömb méretének deklarálása után nem lehet módosítani. Ha a programozó a tömb méretét meghaladó értékeket szeretne tárolni, akkor létre kell hoznia egy új tömböt, és át kell másolnia a meglévő elemeket az új tömbbe. Ilyen helyzetekben gyűjtemények használhatók. Lehetőség van elemek hozzáadására, elemek törlésére és sok más műveletre a gyűjtemények támogatásával. Különféle típusú gyűjtemények állnak rendelkezésre olyan programozási nyelveken, mint például a Java. A Lista és a Set a gyűjtemények hierarchiájának felületei. A többi interfész alapfelülete a Collection. A legfontosabb különbség a lista és a készlet között az, hogy a Lista támogatja ugyanazon elem többszöri tárolását, míg a Set nem támogatja ugyanazon elem többszöri tárolását. Ezért egy halmaz nem teszi lehetővé a duplikációt.

Mi az a lista?

A lista egy olyan felület, amely kiterjeszti a Gyűjtemény felületét. A Gyűjtemény felületén számos módszer létezik. Az add módszer segít egy elem hozzáadását. Az „eltávolítási módszer” egy elem eltávolítása. Az „addAll metódus” több elem hozzáadásához, míg a „removeAll metódus” az elemek eltávolításához a gyűjteményből. A include metódus segít megállapítani, hogy egy adott objektum jelen van-e a listában vagy sem. A „containsAll” annak megállapítására szolgál, hogy van-e objektumkészlet a gyűjteményben. Az iterátor metódus a lista elemei közötti ciklusra szolgál. Mivel a Lista kiterjeszti a Gyűjteményt, a Gyűjtemény összes módszere a Listához tartozik. Ezeken a metódusokon kívül a Listának olyan metódusai is vannak, mint a get és a set. A programozó a get metódussal kaphat értéket egy adott indexen. A programozó a beállított módszerrel beállíthat egy értéket egy adott indexen. Az „indexOf” egy elem indexének megkeresésére szolgál.

Egy listában a műveletek a pozíciónak megfelelően hajthatók végre. A programozó megadhatja az indexhez hozzáadandó adatelemet. Tehát hozzá lesz adva az adott indexhez. Ha a programozó nem ad indexet, akkor az elem a Lista végére kerül. A beillesztett sorrendet is fenntartja. Ha hozzáadjuk az 1. elemet, majd a 2. elemet, akkor az elem1 az elem2 előtt lesz.

Különbség a lista és a készlet között
Különbség a lista és a készlet között

01. ábra: Lista és készlet

ArrayList, LinkedList, Vector néhány olyan osztály, amely megvalósítja a List-et. Az ArrayListben az elemek elérése gyors, de a beszúrás és a törlés alacsonyabb. Az ArrayList nem szálbiztos. Ugyanazon ArrayList elérése több szálból nem biztos, hogy ugyanazt az eredményt adja. A LinkedListben az elemek visszafelé és előrefelé is kapcsolódnak. Az elemek beszúrása és törlése LinkedList segítségével gyorsabb, mint az ArrayList. A LinkedList megvalósítja a List és Queue mindkettőt. A vektor hasonló az ArrayList-hez, de biztonságos, mert minden metódus szinkronban van.

Mi a beállítva?

A Set egy olyan interfész, amely kiterjeszti a Gyűjtemény felületét. Mivel a Set interfész kiterjeszti a Gyűjteményt, a Gyűjtemény összes metódusa is a készlethez tartozik. A készlet nem támogatja az értékek megkettőzését. Ezért a programozó nem tudja kétszer tárolni ugyanazt az elemet. Egyedülálló elemkészletet tart fenn. A SortedSet interfész kiterjeszti a Set felületet. A SortedSet rendezett sorrendben tartja az elemeket. A NavigableSet interfész kiterjeszti a SortedSet-et. A NavigableSet olyan navigációs módszereket kínál, mint az alsó, padló, mennyezet stb.

HashSet, LinkedHashSet és TreeSet néhány olyan osztály, amely megvalósítja a Set felületet. A HashSet megvalósítja a Set interfészt. Nem tartja fenn a beillesztett sorrendet. Ha az értékek a, x, b formátumban vannak beszúrva, akkor az x, a, b formátumban tárolható. A LinkedSet fenntartja a beillesztett sorrendet. Ha az elemeket a, x, b sorrendben illesztjük be, a tárolási sorrend a, x, b lesz. A TreeSet megvalósítja a Set-et és a NavigableSet-et. Nem tartja fenn a beillesztési sorrendet, hanem rendezett sorrendben tárolja az elemeket. Ha a beillesztett sorrend a, c, b, akkor az elemek a, b, c formában kerülnek tárolásra. Az összes HashSet, LinkedHashSet és TreeSet nem tartalmazhat ismétlődő elemeket.

Mi a hasonlóság a lista és a halmaz között?

  • Mind a List, mind a Set interfész kiterjeszti a gyűjteményi felületet.
  • Mind a listázás, mind a beállítás támogatási műveletei, például elemek hozzáadása, eltávolítása.

Mi a különbség a lista és a készlet között?

Lista vs készlet

A Lista interfész a Gyűjtemény alfelülete, amely olyan műveleteket tartalmaz, mint az index alapján beszúrás, törlés. A Set Interface a Gyűjtemény egy alfelülete, amely olyan műveleteket tartalmaz, mint például az elemek beszúrása, törlése az egyedi elemek megtartása mellett.
Osztályok
ArrayList, Vector és LinkedList olyan osztályok, amelyek megvalósítják a List interfészt. HashSet, LinkedHashSet és TreeSet olyan osztályok, amelyek megvalósítják a Set interfészt.
Elemduplikáció
Lista támogatja az elemek többszörözését. A készlet nem támogatja az elemek többszörözését. Az elemek egyediek.

Összefoglaló – Lista vs készlet

A gyűjtemények az elemek dinamikus tárolására szolgálnak. Az olyan programozási nyelvek, mint a Java, gyűjtőfelületet biztosítanak. A Lista és a Set két interfész, amelyek a Gyűjtemény felülethez tartoznak. Mindkét interfész kiterjeszti a gyűjteményt. Ez a cikk a Lista és a Set közötti különbséget tárgy alta. A legfontosabb különbség a lista és a készlet között az, hogy a Lista támogatja ugyanazon elem többszöri tárolását, míg a Set nem támogatja ugyanazon elem többszöri tárolását. A készlet mindig egyedi elemeket tart fenn.

Ajánlott: