Különbség a Set és a List A különbség
Differenciálás a gyűjteménylista és a hivatkozott lista között. Mielőtt bejutnánk a tényleges különbségekbe, derítsük ki, mi is valójában?
Mi az a Set?
Találkoztunk a matematika-készlet fogalmával, és a Set itt többé-kevésbé ugyanazt jelenti. Igen, ez elemek gyűjteménye, és a legtöbb esetben hasonló elemek gyűjteménye. Megpróbálhatja hozzáadni ezeket az elemeket egy készlethez, és megpróbálja kinyomtatni a nyomtatást annak megértéséhez, hogy valójában hogyan tárolják.
20, 50, 10, 30.Valójában a Set as 10, 20, 30, 50.
Az elemek itt vannak rendezve, és nem a beillesztési sorrendben tárolódnak. Ez a Set egyik jellemzője, hogy mindig tárolja az elemeket, és természetesen van kivétel, és az egyik ilyen a LinkedhashSet, mivel fenntartja az elemek beillesztési sorrendjét.
Számítógépes értelemben a Set néhány további tulajdonságot tartalmaz, mint a Methods and Inheritance. A módszerek ugyanúgy működnek, mint bizonyos feladatok, például az elemek készítésével, eltávolításával vagy iterálásával. A legtöbben közismertek az öröklés fogalmából, és itt is ugyanazt jelenti. Igen, örökölhetünk egy módszert a gyűjteményéből, hogy a Set Interface-tel használható. Ismét új, i. e. a Set Interface, és ez nem más, mint az elemek egésze, beleértve a Módszert.
Hogyan kell megvalósítani?
Csak a jobb megértés érdekében egy szettet képviseltünk a szintaxissal. Az alábbi szintaxis alapján meg lehet különböztetni a különböző típusú készleteket, például a HashSet és a TreeSet.import java. util. *;
nyilvános osztály Setexample {
nyilvános statikus érvénytelen fő (String args []) {
int szám [] = {34, 22, 10, 60, 30, 22} {25, 17, 76,, 88, 57};
Set set = új HashSet ();
próbálja {
az (int i = 0; i <5; i ++) {
beállítást. adjunk hozzá (számolni [i]);
}
System. ki. println (set);
TreeSet sortedSeteg = új TreeSet (set);
Rendszer. ki. println ("Itt van a rendezett kimenet:");
Rendszer. ki. println (sortedSeteg);
Rendszer. ki. println ("Nézze meg az első elemet:" + (Integer) sortedSet first ());
Rendszer. ki. println ("Nézd meg az utolsó elemet:" + (Integer) sortedSet last ());
}
fogás (kivétel e) {}
}
}
A fenti kód kimenete a következő.
[25, 17, 76, 12, 88]
Itt van a rendezett kimenet:
[12, 17, 25, 76, 88]
> Nézd meg az utolsó elemet: 88
Mi a lista?
A lista kiterjeszti a gyűjteményt, hasonlóan a készlethez, de fenntartja a beszúrási sorrendet. Megpróbálja hozzáadni a következő neveket egy listához, és megtekintheti, hogy miként kerül hozzáadásra.
A bevitel egy listához:
John, Nancy, Mary, Alice.
Hogyan tárolja a listát:
John, Nancy, Mary, Alice. Érdemes észrevenni a behelyezés sorrendjét. Megállapíthatja, hogy a "John" a bemenet és a kimenet első eleme, és ugyanaz a sorrend, amelyben a nevek be vannak illesztve, követi. Ezt a List legfontosabb tulajdonságait is figyelembe lehet venni.
Hogyan kell megvalósítani? Nézzünk néhány olyan módszert, mint az ArrayList és a LinkedList az alábbi szintaxisban.
import java. util. *;
public class Collection {{999} nyilvános statikus void main (String [] args) {
Lista a1 = új ArrayList ();
a1. add („John”);
a1. add („Nancy”);
a1. add („Mária”);
a1. add („Alice”);
Rendszer. ki. println ("ArrayList elemek");
Rendszer. ki. nyomtatás (" t" + a1);
Lista l1 = új LinkedList ();
l1. add („Silvia”);
l1. add („Arjun”);
l1. add („Deepika”);
l1. add („Susan”);
Rendszer. ki. println ();
Rendszer. ki. println ("LinkedList elemek");
Rendszer. ki. nyomtatás (" t" + l1); }}
A fenti szintaxis kimenete a következő.
Az ArrayList Elemek
[John, Nancy, Mary, Alice]
LinkedList Elemek
[Silvia, Arjun, Deepika, Susan]
és a LinkedList fenntartja a beillesztési sorrendet.
Hogyan különböznek?
Módszerek és leírások:
A Set és a Listnak saját módszerei vannak, és nézzünk rájuk néhányat.
S. Nem
Beállítás - Módszerek
- Lista - Módszerek
1.
add () | - Objektumok hozzáadása a gyűjteménybe. | void add (int index, Objektum obj) - |
Az objektum "obj" hozzáadásával a meghívó lista megadott "indexjéhez", és biztosítja, hogy az előző elemek áthelyezésével egyetlen elem sem kerül felülírásra. | 2. clear () - | Az objektumok eltávolítása egy gyűjteményből. logikai addAll (int index, gyűjtemény c) - |
Hozzáadja a teljes "c" gyűjteményt a meghívó listához és a megadott indexhez. Azt is biztosítja, hogy egyetlen elem sem kerül felülírásra. A visszatérési érték megvizsgálásával ellenőrizhetjük működésének helyességét is. Visszatér "igaznak", ha a változás egyébként sikeres, akkor egy "hamis" értéket ad vissza. | 3. contains () - | Ellenőrizni kell, hogy a Set tartalmaz-e egy bizonyos objektumot. A "true" értéket adja vissza, ha az objektum jelen van a Set-ben. Objektum get (int index) - |
Visszaküldi az elemet vagy objektumot a megadott "indexben". | 4. isEmpty () | - Meg kell határoznia, hogy a gyűjtemény nem tartalmaz-e elemeket. Az értéket "igaznak" adja vissza, ha nincs elem. int lastIndexOf (Object obj) - |
Ez a | indexOf () módszer fordítottja. Visszaküldi az objektum "obj" objektum utolsó előfordulását, és az "1" értéket visszaadja, ha nincs ilyen objektum a listában. Ezért a | contains () Set Interface módja is használható. 6. remove () - Egy elem eltávolítása egy gyűjteményből a metódus paraméterének megadásával. ListIterator listIterator () - |
Egy iterátort visz vissza a lista kezdő indexébe. | 7. size () | - Számolni kell a gyűjtemény objektumainak vagy elemeinek számát. ListIterator listIterator (int index) - |
Segít az iterációban az invokálási listán keresztül, a megadott "index" -től kezdődően. | 8. - | Objektum eltávolítása (int index) - Törli az objektumot a megadott "indexben", és ennek eredményeként a törölt elemet visszaküldi. Ugyancsak csökkenti az eredményül kapott listaindexeket, amelyek tükrözik a törlést. |
9. | - | Objektum készlet (int index, Object obj) - Az objektum "obj" hozzárendelése a megadott indexhez. |
10. | - | Lista subList (int start, int end) - Az objektumokat az index "start" -ból az index "end" -be kell beillesztenie a listába. |
REPLACEion Order maintenance: | A Set nem tartja meg azon elemek sorrendjét, amelyekbe beillesztik, míg a lista fenntartja azt. A LinkedHashSet esetében ez a szabály kivételt képez, mivel megtartja a beillesztési sorrendet, de a másik Set, például a HashSet és a TreeSet az elemeket az elmentés előtt rendezi. Ugyanezt ismertetjük az alábbi példákkal. | Set Bemenet: Macska, Doll, Apple. |
- Az alábbiakat tárolja: Apple, Cat, Doll.
Lista bevitele: Macska, Doll, Apple. A következőket tárolja: Macska, Doll, Apple.
Duplikátumok jelenléte:
A Set nem engedélyezi a másolatokat, míg a lista lehetővé teszi. Ha a listához dupla értéket kell hozzáadni, akkor felülíródik. Nézze meg a mintákat a Set and List duplikátumokhoz.
A bemenet beállítása: 10, 20, 20, 50.
Tárolt: 10, 20, 50.
- Lista bemenet: 10, 20, 20, 50.
20, 50.
Null értékek:
A készletnek csak egy null értéke lehet, míg a lista több null értéket is tartalmazhat, és nem korlátozódik semmilyen számra.
Input beállítás: null, null, Man, Dog, Plane.
Tárolt: null, Dog, Man, Plane.
- Lista bemenet: null, null, Man, Dog, Plane.
Tárolt: null, null, Man, Dog, Plane.
Iterator & ListIterator használata:
Az Iterator módszer jól működik mind a Set, mind a List, míg a Method List1terator csak a List segítségével működik. A ListIterator segítségével előre és visszafelé haladhat a listán.
A Legacy Class jelenléte:
A Set nem rendelkezik régi osztályral, míg a List interfész öröksége a "vektor". A vektor a List interfészt használja, és így fenntartja a beszúrási sorrendet. A szinkronizálási erőfeszítések miatt a vektor teljesítménye a kiegészítésekben, törlésekben és frissítésekben lassabb.
- Megvalósítások:
A telepített megvalósítások közül kevés a HashSet, LinkedHashSet és a TreeSet. A List implementációk közül csak kevés szerepel az ArrayList és a LinkedList.
- Mikor kell használni a Set & Listt?
A Set és a lista használata tisztán függ a beillesztési megbízás karbantartásának követelményétől.Amint megtudtuk, hogy egy Set soha nem tartja be a beszúrási sorrendet, akkor használható, ha a megrendelés kevésbé fontos. Hasonló módon használja a listát, amikor a beillesztés sorrendjét is meg kell őriznie.
- Különbségek táblázatos formában:
S. Nem
Különbségek
Beállítás