Diferența dintre Set și Listă

Diferența dintre lista matrice și lista asociată

Înainte de a intra în diferențele reale, să ne cunoaștem în realitate?

Ce este un set?

Am descoperit conceptul de Set în matematică și Setul aici înseamnă mai mult sau mai puțin același lucru. Da, este o colecție de elemente și, în majoritatea cazurilor, o colecție de elemente similare. Puteți încerca să adăugați aceste elemente într-un set și să încercați să imprimați pentru a înțelege cum este efectiv stocat.

Intrare la un set: 20, 50, 10, 30.

Este de fapt stocat într-un set ca 10, 20, 30, 50.

Elementele sunt sortate aici și nu sunt stocate în ordinea inserției lor. Aceasta este una din trăsăturile Setului că întotdeauna sortează elementele înainte de stocare și bineînțeles că există excepții de la acesta și un astfel de lucru este LinkedhashSet deoarece acesta menține ordinea inserției elementelor.

În termeni de computere, Setul include câteva proprietăți suplimentare, cum ar fi Metode și Moștenire. Metodele sunt la fel ca și funcțiile și fac anumite sarcini, cum ar fi adăugarea, eliminarea sau iterarea prin setul de elemente. Cei mai mulți dintre noi sunt bine-cunoscuți ai termenului Moștenire și înseamnă același lucru aici. Da, putem moșteni o metodă din colecția sa, astfel încât să poată fi folosită cu interfața setată. Din nou vorbim despre un nou termen, adică Set Interface, și nu este altceva decât întregul set de elemente, inclusiv Metodele.

Cum să îl implementați?

Doar pentru o înțelegere mai bună, am reprezentat un set cu sintaxa sa. Din sintaxa de mai jos, ați putea identifica diferitele tipuri de Set, cum ar fi HashSet și TreeSet.

import java.util. *;

public class Setexample

public static void principal (String args [])

int numărătoare [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Set set = nou HashSet ();

încerca

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

set.add (conta [i]);

System.out.println (set);

TreeSet sortSeteg = nou set TreeSet (set);

System.out.println ("Aici avem ieșirea sortată:");

System.out.println (sortedSeteg);

System.out.println ("Priviți primul element:" + (Integer) sortedSet.first ());

System.out.println ("Uită-te la ultimul element:" + (Integer) sortedSet.last ());

captură (Excepție e)

Ieșirea codului de mai sus este după cum urmează.

[25, 17, 76, 12, 88]
Aici avem rezultatul sortat:
[12, 17, 25, 76, 88]
Uită-te la primul element: 12
Uită-te la ultimul element: 88

Ce este Lista?

O listă extinde colecția similară modului în care a făcut un set, dar menține ordinea inserării. Încercați să adăugați următoarele nume într-o listă și să vedeți cum se adaugă.

Intrarea într-o listă: John, Nancy, Mary, Alice.

Cum se stochează într-o listă: John, Nancy, Mary, Alice.

Observați doar ordinea în care sunt inserate. Puteți identifica faptul că "John" este primul element din intrare și de ieșire și este urmat de aceeași ordine în care sunt inserate numele. Putem chiar considera aceasta una dintre proprietatile majore ale listei.

Cum să îl implementați?

Să ne uităm la câteva din metodele din Listă, cum ar fi ArrayList și LinkedList, în sintaxa de mai jos.

import java.util. *;
public class Collectionssample

public static void principal (String [] args)

Lista a1 = noul ArrayList ();
a1.add ( „Ioan“);
a1.add ( „Nancy“);
a1.add ( „Maria“);
a1.add ( „Alice“);
System.out.println ("Elementele ArrayList sunt");
System.out.print ("\ t" + a1);

Listă l1 = LinkedList nou ();
l1.add ( „Silvia“);
l1.add ( „Arjun“);
l1.add ( „Deepika“);
l1.add ( „Susan“);
System.out.println ();
System.out.println ("Elementele LinkedList sunt");
System.out.print ("\ t" + l1);

Rezultatul sintaxei de mai sus este următorul.

Elementele ArrayList sunt

[John, Nancy, Mary, Alice]

Elementele LinkedList

[Silvia, Arjun, Deepika, Susan]

Este foarte clar din codul de mai sus că atât ArrayList cât și LinkedList păstrează ordinea de inserare.

Cum se diferențiază?

  • Metode și descrieri:

Setul și lista au propriile metode și să ne uităm la câteva dintre ele.

S.No Set - Metode Listă - Metode
1. adăuga() - Este de a adăuga obiecte într-o colecție. void add (int index, Object obj) - Adăugă obiectul "obj" la indexul specificat al listei de invocare și asigură că niciun element nu este suprascris prin mutarea elementelor anterioare.
2. clar() - Este de a elimina obiecte dintr-o colecție. boolean addAll (index int, colecție c) - Se adaugă întreaga colecție "c" în lista de invocare și la "indexul" specificat. Se asigură, de asemenea, că elementele nu sunt suprascrise. De asemenea, putem verifica corectitudinea funcționării sale examinând valoarea returnată. Se întoarce "adevărat" dacă schimbarea este reușită altfel, returnează o valoare "falsă".
3. conține () - Trebuie să verificați dacă setul conține un anumit obiect în el. Aceasta returnează o valoare "adevărată" dacă obiectul este prezent în Set. Object get (index int) - Returnează elementul sau obiectul la "indexul" specificat.
4. este gol() - Este de a determina dacă colecția ajută în așa cum nu există elemente în ea. Aceasta returnează o valoare "adevărată" dacă nu există niciun element. int lastIndexOf (OB Object) - Funcționează similar cu cel din spate Index de() Metodă. Aceasta returnează ultima apariție a obiectului specificat 'obj' și se returnează o valoare '1' dacă nu există niciun astfel de obiect în listă. Prin urmare, poate fi folosit și ca conține () Metoda de interfață setată.
6. elimina() - Este pentru a elimina un element dintr-o colecție prin specificarea acestuia ca parametru al metodei. ListăIteratorIterator () - Returnează un iterator la indexul de pornire al listei.
7. mărimea() - Este de a număra numărul de obiecte sau elemente care au o colecție. ListIterator listIterator (int index) - Ajută la iterarea prin lista de invocare pornind de la "indexul".
8. - Eliminarea obiectelor (index int) - Sterge obiectul de la indexul specificat si returneaza elementul sters ca rezultat. De asemenea, scade indicii listei rezultate pentru a reflecta ștergerea.
9. - Set de obiecte (index int, Object obj) - Este de atribuit obiectul "obj" la lista de invocare la "indexul" specificat,.
10. - Lista subList (int start, int end) - Este vorba de includerea obiectelor din indexul "start" la indexul "end" din lista care a invocat Metoda.
  • Întreținerea comenzii de introducere:

Setul nu menține niciodată ordinea elementelor în care sunt inserate în el, în timp ce lista îl menține. Există o excepție de la această regulă pentru LinkedHashSet deoarece menține ordinea inserării, dar cealaltă Set, cum ar fi HashSet și TreeSet, sortează elementele înainte de a le depozita. Același lucru este descris în exemplele de mai jos.

A stabilit Intrare: Cat, Doll, Apple.

Stocate ca: Apple, Cat, Doll.

Intrare în listă: Cat, Doll, Apple.

Stocate ca: Cat, Papusa, Apple.

  • Prezența duplicatelor:

Un set nu permite niciodată duplicate, în timp ce o listă o permite. Dacă o valoare duplicat trebuie adăugată la o listă, atunci ea va fi suprascrisă. Uită-te la probele pentru duplicate Set și List.

Setați intrarea: 10, 20, 20, 50.

Stocată ca: 10, 20, 50.

Listă de intrări: 10, 20, 20, 50.

Stocată ca: 10, 20, 20, 50.

  • Valori nula:

Un set poate avea doar o valoare nulă, în timp ce o listă poate avea mai mult de o valoare nulă și nu este limitată la nici un număr.

Setați intrarea: null, null, Man, Dog, Plane.

Stocată ca: null, Dog, Man, Airplane.

Listă de intrări: null, null, bărbat, câine, avion.

Stocat ca: null, null, Man, Dog, Airplane.

  • Utilizarea Iteratorului & ListIterator:

Metoda Iterator funcționează bine atât cu Set cât și cu List, în timp ce metoda ListIterator funcționează numai cu List. ListIteratorul poate fi folosit pentru a traversa înainte și înapoi prin Listă.

  • Prezența clasei Legacy:

Setul nu are clasă moștenită, în timp ce interfața listă are o moștenire numită "vector". Un vector utilizează interfața List și, prin urmare, menține ordinea inserării. Datorită eforturilor de sincronizare, performanța vectorului în adăugiri, ștergeri și actualizări este puțin mai lentă.

  • implementari:

Puține dintre implementările Set sunt HashSet, LinkedHashSet și TreeSet. Puține implementări ale listei includ ArrayList și LinkedList.

Când să utilizați Set & List?

Utilizarea setului și a listei este strict dependentă de cerința de întreținere a ordinului de introducere. După cum am aflat că un set nu menține niciodată ordinea inserării, acesta poate fi utilizat atunci când ordinul are o importanță mai mică. În mod similar, utilizați lista atunci când trebuie să păstrați și secvența de inserare.

Diferențele într-o formă tabelară:

S.No Diferențele în A stabilit Listă
1. Ordin de introducere Menține ordinul de inserare. Primul inserat rămâne în primul rând și așa mai departe, indiferent de valoarea sa. Nu menține niciodată ordinul de inserare.
2. metode Utilizează metodele precum add (), clear (), contains (), isEmpty (), remove () și size (). Utilizează metodele precum add (), addAll (), get (), lastIndexOf (), ListIterator () cu sau fără parametru, remove (), set () și subList.
3. dubluri Nu permite niciodată duplicate și, în cazul unor asemenea apariții, valoarea devine suprascrisă. Aceasta permite duplicate.
4. Valori nula Poate avea o singură valoare nulă la maxim. Poate avea orice număr de valori nula.
5. Utilizarea lui Iterator () & listIterator () Utilizează numai metoda iterator (). Utilizează atât iteratorul () cât și listaIterator ().
6. Prezența clasei Legacy Nu există o clasă Legacy. Are ca clasă Legacy numit ca vector.
7. implementari Puține dintre implementările interfeței Set sunt HashSet, LinkedHashSet și Tree Set. Puține dintre implementările interfeței List sunt LinkedList și ArrayList.

Sper că am inclus orice diferență posibilă dintre set și listă. Dacă simțiți că am pierdut ceva, vă rugăm să ne spuneți.