Diferența dintre setare și listă Diferența dintre

Anonim

Diferența dintre lista matrice și lista asociată

Înainte de a ajunge în diferențele reale, să ne cunoaștem ce sunt cu adevărat?

Ce este un set?

Am ajuns la conceptul de Set în matematică, iar Setul aici înseamnă mai mult sau mai puțin același. 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.

Este introdus î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 a le depozita și, desigur, există excepții de la acesta, iar unul dintre acestea este LinkedhashSet, deoarece menține ordinea inserției elementelor.

În termeni de calcul, 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 utilizată cu interfața setată. Din nou vorbim despre un nou termen i. e. Interfața setată și nu este altceva decât întregul set de elemente, inclusiv Metodele.

Cum să o implementăm?

Doar pentru o mai bună înțelegere, 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. *;

clasa publică Setexample {

public static void principal {String args []) {

int count [] = {34, 22, 10, 60, 30, 22} {25, 17, 76, 12, 88, 57};

set set = nou HashSet ();

încercați {

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. primul ());

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

}

captură (Excepție e) {}

}

}

Ieșirea codului de mai sus este următoarea.

[25, 17, 76, 12, 88]

Aici avem rezultatul sortat:

[12, 17, 25, 76, 88]

> Uită-te la ultimul element: 88

Ce este lista?

O listă extinde Colecția similar cu modul î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 să considerăm una dintre proprietățile majore ale listei.

Cum să o implementăm? Să aruncăm o privire asupra câtorva metode de listă, cum ar fi ArrayList și LinkedList, în sintaxa de mai jos.

import java. UTIL. *;

public classSamplessample {

public static void principal {String [] args) {

Lista a1 = nou ArrayList ();

a1. add („Ioan“);

a1. add („Nancy“);

a1. add („Maria“);

a1. add („Alice“);

System. out. println ("Elementele ArrayList sunt");

System. out. tipăriți (" 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. tipăriți (" t" + l1); }}

Rezultatul sintaxei de mai sus este după cum urmează.

ArrayList Elementele sunt

[John, Nancy, Mary, Alice]

Elementele LinkedList

iar LinkedList păstrează ordinul 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 aici.

S. Nu

Set - Metode

  • Listă - Metode

1.

add () - Se adaugă 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 schimbarea elementelor anterioare. 2. clear () - Se elimină 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 () - Se verifică 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. isEmpty () - 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 (Object obj) -
Funcționează similar cu inversul metodei indexOf () . Aceasta returnează ultima apariție a obiectului specificat 'obj' și se returnează o valoare '1' dacă nu există nici un astfel de obiect în listă. Prin urmare, poate fi folosit și ca conține () metoda interfeței de setare. 6. remove () - Se elimină un element dintr-o colecție prin specificarea acestuia ca parametru al metodei. ListIterator listIterator () -
Returnează un iterator la indexul de pornire al listei. 7. size () - 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 specificat. 8. - Eliminarea obiectelor (int index) - Sterge obiectul 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) - Se atribuie obiectul "obj" la lista invocată la indexul specificat.
10. - Lista subList (int start, int end) - Trebuie să includă obiectele din indexul "start" la indexul "end" din lista care a invocat Metoda.
Întreținerea ordinului de introducere: Setul nu menține niciodată ordinea elementelor în care sunt inserate în acesta, în timp ce lista nu o întreț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. Set Intrare: Cat, Doll, Apple.
  • Stocate ca: Apple, Cat, Doll.

Intrare în listă: Cat, Doll, Apple. Stocate ca: Cat, Doll, 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.

Setare intrare: 10, 20, 20, 50.

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

  • Valori Nul:

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, Plane.

Input lista: null, null, Man, Dog, Plane.

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

  • Utilizarea Iterator & 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 Listare 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ă.

Implementări:

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

  • Când să folosiți Set & List?

Utilizarea setului și a listei depinde exclusiv 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țe într-o formă tabelară:

S. Nu

  • Diferențe în

Setați

Lista

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 cum ar fi add (), clear (), contains (), isEmpty (), remove () și size (). Utilizează metodele cum ar fi add (), addAll (), get (), lastIndexOf (), ListIterator () cu sau fără parametru, remove (), set () și subList (). 3. Duplicate
Nu permite niciodată duplicate, iar în cazul unor asemenea apariții, valoarea este suprascrisă. Permite duplicate. 4. Valori nulă
Poate avea o singură valoare nulă la maxim. Poate avea orice număr de valori nul. 5. Utilizarea Iterator () & listIterator ()
Utilizează numai iteratorul (). Utilizează atât iteratorul (), cât și listaIterator (). 6. Prezența clasei Legacy
Nu există o clasă Legacy. Are clasa Legacy numită vector. 7. Implementări
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ăm că am inclus toate diferențele posibile între set și listă. Dacă simțiți că am pierdut ceva, vă rugăm să ne spuneți.