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

Különbség a tömblista és a kapcsolt lista között

Mielőtt belemerülnénk a tényleges különbségekbe, megismerhetjük, mi azok valójában?

Mi az a készlet?

A matematikában a Set fogalmával találkoztunk, és a Set itt többé-kevésbé ugyanazt jelenti. Igen, ez egy elemgyűjtemény, és a legtöbb esetben hasonló elemek gyűjteménye. Megpróbálhatja ezeket az elemeket hozzáadni a készlethez, és megkísérelheti a nyomtatást, hogy megértse, hogyan tárolják azokat.

Bemenet egy készletbe: 20, 50, 10, 30.

Valójában egy Set as fájlban tárolja 10, 20, 30, 50.

Az elemek itt vannak rendezve, és nem a beillesztési sorrendben vannak tárolva. Ez a Set egyik jellemzője, hogy tárolás előtt mindig rendezi az elemeket, és természetesen vannak kivételek is, és az egyik ilyen a LinkedhashSet, mivel fenntartja az elemek beillesztési sorrendjét..

Számítógépes szempontból a készlet néhány további tulajdonságot tartalmaz, például a módszereket és az öröklést. A módszerek éppen olyanok, mint a funkciók, és bizonyos feladatokat hajtanak végre, például hozzáadnak, eltávolítanak vagy iterálnak az elemek halmazán keresztül. Legtöbbünk közismert az öröklés kifejezésről, és itt ugyanazt jelenti. Igen, egy módszert örökölhetünk annak gyűjteményéből, hogy az a Set Interfészen használható legyen. Újból egy új kifejezésről, azaz a Set Interfészről beszélünk, és ez nem más, mint az elemek összessége, beleértve a Methods.

Hogyan lehet végrehajtani??

Csak a jobb megértés érdekében egy szettet képviseltünk. Az alábbi szintaxistól meg lehet határozni a különféle halmaztípusokat, például a HashSet és a TreeSet.

import java.util. *;

nyilvános osztály Setexample

nyilvános statikus void main (karakterláncok [])

int szám [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Set set = new HashSet ();

próbáld ki

for (int i = 0; i < 5; i++)

set.add (számolni [i]);

System.out.println (set);

TreeSet sortedSeteg = új TreeSet (készlet);

System.out.println (“Itt van a rendezett kimenet:”);

System.out.println (sortedSeteg);

System.out.println („Nézd meg az első elemet:“ + (egész szám) sortedSet.first ());

System.out.println (“Nézd meg az utolsó elemet:“ + (egész szám) sortedSet.last ());

fogás (e kivétel)

A fenti kód kimenete a következő.

[25, 17, 76, 12, 88]
Itt van a rendezett kimenet:
[12, 17, 25, 76, 88]
Nézze meg az első elemet: 12
Nézd meg az utolsó elemet: 88

Mi az a Lista?

A Lista kiterjeszti a Gyűjteményt, hasonlóan ahhoz, mint egy készlet, de fenntartja a beszúrási sorrendet. Megpróbálja hozzáadni a következő neveket egy listához, és megnézheti, hogyan kerül hozzá.

A lista bemenete: John, Nancy, Mary, Alice.

Hogyan tárolja a listában: John, Nancy, Mary, Alice.

Csak vegye figyelembe a behelyezés sorrendjét. Megállapítható, hogy a 'John' az első elem mind a bemeneten, mind a kimeneten, és ugyanazt a sorrendet követi, ahogyan a neveket beszúrják. Még azt is tekinthetjük, hogy ez a Lista egyik fő tulajdonsága.

Hogyan lehet végrehajtani??

Nézzünk néhányat a Lista módszereiről, például az ArrayList és a LinkedList az alábbi szintaxisban.

import java.util. *;
nyilvános osztály Gyűjteményminta

nyilvános statikus void main (karakterlánc [] args)

A1 lista = új ArrayList ();
a1.add ( „John”);
a1.add ( „Nancy”);
a1.add ( „Mária”);
a1.add ( „Alice”);
System.out.println („ArrayList Elements are”);
System.out.print (“\ t” + a1);

L1. Lista = új LinkedList ();
l1.add ( „Silvia”);
l1.add ( „Arjun”);
l1.add ( „Deepika”);
l1.add ( „Susan”);
System.out.println ();
System.out.println („LinkedList Elements are”);
System.out.print (“\ t” + l1);

A fenti szintaxis kimenete a következő.

Az ArrayList elemek vannak

[John, Nancy, Mary, Alice]

LinkedList Elements

[Silvia, Arjun, Deepika, Susan]

A fenti kódból nagyon egyértelmű, hogy mind az ArrayList, mind a LinkedList fenntartja a beszúrási sorrendet.

Hogy különböznek egymástól??

  • Módszerek és leírások:

A halmaznak és a listának megvannak a maga módszerei, és néhányat nézzünk meg itt.

S.No Készlet - módszerek Lista - módszerek
1. add () - Objektumok hozzáadása a gyűjteményhez. void add (int index, Object obj) - Hozzáadja az „obj” objektumot a meghívó lista megadott „indexéhez”, és gondoskodik arról, hogy az előző elemek elmozgatásával ne kerüljön felül elem.
2. egyértelmű() - Objektumok eltávolítása a gyűjteményből. logikai addAll (int index, c gyűjtemény) - A teljes „c” gyűjteményt hozzáadja a meghívó listához és a megadott „indexhez”. Biztosítja azt is, hogy egyetlen elem sem kerül felülírásra. Azt is ellenőrizhetjük működésének helyességét, hogy megvizsgáljuk a visszatérési értéket. Visszaadja az „igaz” értéket, ha a változtatás egyébként sikeres, a „hamis” értéket adja vissza.
3. tartalmaz () - Ellenőrizni kell, hogy a készlet tartalmaz-e egy bizonyos objektumot benne. Visszaadja az „igaz” értéket, ha az objektum jelen van a készletben. Objektum beolvasása (int index) - Visszaadja az elemet vagy az objektumot a megadott 'indexnél'.
4. üres() - Annak meghatározása, hogy a gyűjtemény segít-e, mivel nincs benne elem. Ha az elem nincs, akkor az „igaz” értéket ad vissza. int lastIndexOf (obj objektum) - Hasonlóan működik, mint a indexe() Eljárás. Visszaadja a megadott "obj" objektum utolsó előfordulását, és egy "1" értéket ad vissza, ha a listában nincs ilyen objektum. Ezért használható tartalmaz () A beállított interfész módszere.
6. remove () - Ennek célja egy elem eltávolítása a gyűjteményből, a paraméter megadásával a módszerhez. ListIterator listIterator () - Visszatér egy iterátort a lista kezdő indexéhez.
7. méret() - Meg kell számolni a gyűjteményben lévő objektumok vagy elemek számát. ListIterator listIterator (int index) - Ez elősegíti a meghívó lista áthaladását a megadott 'index' -től kezdve.
8. - Objektum eltávolítása (int index) - Törli az objektumot a megadott 'indexen', és eredményként adja vissza a törölt elemet. Ezenkívül csökkenti a kapott listaindexeket, hogy tükrözze a törlést.
9. - Objektumkészlet (int index, Object obj) - Az obj objektumot hozzá kell rendelni a meghívó listához a megadott 'index' alatt.
10. - Allista felsorolása (int kezdés, int vég) - Az objektumokat fel kell venni az „indulástól” az „vég” indexéig a listát, amely meghívta a módszert.
  • Beszúrási rendelés karbantartása:

A készlet soha nem tartja be az elemek sorrendjét, ahogyan beillesztik őket, míg a lista fenntartja azt. Kivételt képez ez a szabály a LinkedHashSet esetében, mivel az fenntartja a beillesztés sorrendjét, de a másik készlet, például a HashSet és a TreeSet tárolja az elemeket. Ugyanezt írjuk le az alábbi példákkal.

Készlet Bemenet: macska, baba, alma.

Tárolva: Apple, Cat, Doll.

Listabevitel: macska, baba, alma.

Tárolva: macska, baba, alma.

  • Másolatok jelenléte:

A készlet soha nem engedélyezi a másolatokat, míg a listák megengedik. Ha egy másolatot hozzá kell adni egy listához, akkor az felülíródik. Nézze meg a mintákat a Set és a listák példányaihoz.

Beállított bemenet: 10, 20, 20, 50.

Tárolva: 10, 20, 50.

Lista bevitel: 10, 20, 20, 50.

Tárolva: 10, 20, 20, 50.

  • Nulla értékek:

A halmaznak csak egy null értéke lehet, míg a listának egynél több null értéke is lehet, és egyetlen számra nem korlátozódik.

Beállított érték: null, null, ember, kutya, repülő.

Tárolva: null, kutya, ember, repülőgép.

Lista bevitel: null, null, ember, kutya, repülő.

Tárolva: null, null, ember, kutya, repülő.

  • Az Iterator és a ListIterator használata:

Az Iterator módszer jól működik mind a Set, mind pedig a List esetén, míg a ListIterator módszer csak a Lista esetén működik. A ListIterator felhasználható a listán való előre- és hátrafelé történő mozgatáshoz.

  • A Legacy osztály jelenléte:

A halmaznak nincs öröklési osztálya, míg a Lista interfésznek van öröksége, amelyet 'vektornak' hívnak. Egy vektor a Lista felületet használja, ezért fenntartja a beszúrási sorrendet. A szinkronizálási erőfeszítések miatt a vektor-kiegészítések, törlések és frissítések teljesítménye kissé lassabb.

  • megvalósítások:

A Set megvalósítások közül kevés a HashSet, a LinkedHashSet és a TreeSet. A Lista megvalósításai közül néhányat tartalmaz az ArrayList és a LinkedList.

Mikor kell használni a Set & List lehetőséget??

A Set és a lista használata tisztán a beszúrási sorrend fenntartásának követelményétől függ. Mint megtudtuk, hogy a készlet soha nem tartja be a beszúrási sorrendet, akkor használható, ha a sorrend kevésbé fontos. Hasonló módon használja a Lista lehetőséget, ha meg kell tartania a beillesztés sorrendjét is.

Különbségek táblázatos formában:

S.No Különbségek Készlet Lista
1. Beszúrási sorrend Fenntartja a beillesztési sorrendet. Az első behelyezett elem első helyen marad, és így tovább, függetlenül annak értékétől. Soha nem tartja be a beszúrási sorrendet.
2. Mód Olyan módszereket használ, mint az add (), a clear (), tartalmazza (), isEmpty (), remove () és size (). Olyan módszereket használ, mint az add (), addAll (), get (), lastIndexOf (), ListIterator () paraméterrel vagy anélkül, remove (), set () és subList ().
3. ismétlődések Soha nem engedélyezi a másolatokat, és ilyen megjelenések esetén az érték felülíródik. Ez lehetővé teszi másolatok készítését.
4. Null értékek Legfeljebb egyetlen nulla értéke lehet. Tetszőleges számú null értéke lehet.
5. Az Iterator () és a listIterator () használata Csak az iterator metódust használja (). Mind az iterátort (), mind a listIterator () -ot használja..
6. A Legacy osztály jelenléte Nincs Legacy osztály. Ennek Legacy osztálya van, mint vektor.
7. megvalósítások A Set felület megvalósításának kevés a HashSet, LinkedHashSet és a Tree Set. A lista interfész kevés megvalósítása a LinkedList és az ArrayList.

Remélem, minden lehetséges különbséget felvetünk a készlet és a lista között. Ha úgy érzi, hogy hiányzott valamit, kérjük, ossza meg velünk.