Skillnad mellan Set och List Skillnad mellan

Anonim

Skillnad mellan Array List och Linked List

Innan vi kommer in i de faktiska skillnaderna, låt oss lära känna vad de egentligen är?

Vad är en uppsättning?

Vi har stött på begreppet "Set in mathematics" och "Set Set" här betyder mer eller mindre detsamma. Ja, det är en samling av element och i de flesta fall en samling av liknande element. Du kan försöka lägga till dessa element i en uppsättning och försök att skriva ut för att förstå hur den lagras.

Inmatning till en uppsättning: 20, 50, 10, 30.

Den lagras faktiskt i en uppsättning som 10, 20, 30, 50.

Elementen sorteras här och lagras inte i deras inplaceringsorder. Detta är ett av funktionerna i Set att det alltid sorterar elementen före lagring och det finns naturligtvis undantag till det och en sådan är LinkedhashSet eftersom den behåller elementets införingsordning.

I datorns termer innehåller uppsättningen några ytterligare egenskaper såsom metoder och arv. Metoder är precis som funktioner och de gör vissa uppgifter som att lägga till, ta bort eller iterera genom uppsättningen av element. De flesta av oss är kända för termen arv och det betyder detsamma här. Ja, vi kan ärva en metod från dess samling så att den kan användas med inställningsgränssnittet. Återigen pratar vi om en ny term i. e. Set-gränssnittet, och det är inget annat än hela uppsättningen av element, inklusive metoderna.

Så här implementeras det?

För en bättre förståelse har vi representerat en uppsättning med sin syntax. Från nedanstående syntax kan du identifiera olika typer av Set som HashSet och TreeSet.

importera java. util. *;

offentlig klass Setexample {

statisk statisk tomt huvud (String args []) {

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

Ange set = nytt HashSet ();

försök {

för (int i = 0; i <5; i ++) {

set. lägg (count [i]);

}

System. ut. println (set);

TreeSet sortedSeteg = nytt TreeSet (set);

System. ut. println ("Här har vi den sorterade utsignalen:");

System. ut. println (sortedSeteg);

System. ut. println ("Titta på det första elementet:" + (Integer) sortedSet. first ());

System. ut. println ("Titta på sista elementet:" + (Integer) sortedSet. last ());

}

Fångst (Undantag e) {}

}

}

Utmatningen av ovanstående kod är som följer.

[25, 17, 76, 12, 88]

Här har vi den sorterade utsignalen:

[12, 17, 25, 76, 88]

Titta på det första elementet: 12 > Titta på det sista elementet: 88

Vad är List?

En lista utökar samlingen på samma sätt som en Set gjorde, men den behåller ordningsföljden för införandet. Du försöker lägga till följande namn i en lista och se hur det läggs till det.

Inmatningen till en lista:

John, Nancy, Mary, Alice. Hur det lagras i en lista:

John, Nancy, Mary, Alice. Lägg märke till den ordning i vilken de sätts in. Du kan identifiera att "John" är det första elementet i inmatning såväl som utmatning och följs av samma ordning som namnen läggs in. Vi kan även överväga denna en av de största egenskaperna hos List.

Så här implementerar du det?

Låt oss titta på några av metoderna för Lista som ArrayList och LinkedList i nedanstående syntax.

importera java. util. *;

public class Collectionssample {

statisk statisk tomt huvud (String [] args) {

Lista a1 = ny ArrayList ();

a1. lägga (”John”);

a1. lägga (”Nancy”);

a1. lägga (”Mary”);

a1. lägga (”Alice”);

System. ut. println ("ArrayList Elements är");

System. ut. skriva ut (" t" + a1);

Lista l1 = ny LinkedList ();

l1. lägga (”Silvia”);

l1. lägga (”Arjun”);

l1. lägga (”Deepika”);

l1. lägga (”Susan”);

System. ut. println ();

System. ut. println ("LinkedList Elements are");

System. ut. skriv ut (" t" + l1); }}

Resultatet av ovanstående syntax är som följer.

ArrayList Elements är

[John, Nancy, Mary, Alice]

LinkedList Elements

[Silvia, Arjun, Deepika, Susan]

Det är mycket tydligt från ovanstående kod att både ArrayList och LinkedList upprätthåller inläggsordern.

Hur skiljer de sig?

Metoder och beskrivningar:

  • Set och listan har egna metoder och låt oss se några av dem här.

S. Nej

Ange - Metoder Lista - Metoder 1.
lägg till () - Det är att lägga till objekt i en samling. void add (int index, Objekt obj) - Det lägger till objektet 'obj' vid det angivna "indexet" på invokinglistan och det säkerställer att inget element skrivs över genom att skifta de föregående elementen. 2.
clear () - Det är att ta bort objekt från en samling. booleskt addAll (int index, samling c) - Det lägger till hela samlingen 'c' till invokeringslistan och i det angivna indexet. Det säkerställer också att inga element skrivs över. Vi kan också kontrollera att dess funktion är korrekt genom att undersöka returvärdet. Den returnerar "true" om förändringen lyckas annars, returnerar den ett värde "false". 3.
innehåller () - Det är att kontrollera om uppsättningen innehåller ett visst objekt i det. Det returnerar ett värde "true" om objektet är närvarande i Set. Object get (int index) - Det returnerar elementet eller objektet till det angivna indexet. 4.
isEmpty () - Det är att avgöra om insamlingen hjälper till som inga element i den. Den returnerar ett värde "true" om det inte finns något element. int lastIndexOf (Object obj) - Det fungerar som omvändet av indexOf () Metoden. Den returnerar den sista förekomsten av det angivna objektet 'obj' och ett värde '1' returneras om det inte finns något sådant objekt i listan. Därför kan den också användas som innehåller () Metod för inställningsgränssnittet. 6.
ta bort () - Det är att ta bort ett element från en samling genom att ange det som en parameter för metoden. ListIterator listIterator () - Den returnerar en iterator till startindex för listan. 7.
size () - Det är att räkna antalet objekt eller element som en samling har. ListIterator listIterator (int index) - Det hjälper till att iterera genom uppkallningslistan som börjar vid det angivna indexet. 8.
- Objektet tar bort (int index) - Det tar bort objektet vid det angivna indexet och returnerar det raderade elementet som resultat. Det minskar också de resulterande listindexen för att återspegla raderingen. 9.
- Objektuppsättning (int index, Objekt obj) - Det är att tilldela Objektet "obj" till invoklistan vid det angivna indexet. 10.
- Lista underlista (int start, int slutet) - Det ska inkludera objekten från indexet "start" till indexet "slutet" i listan som har påkallat Metoden. Infoga Orderunderhåll:
  • Setet behåller aldrig ordningen för de element där de sätts in i den medan listan håller den. Det finns ett undantag från denna regel för LinkedHashSet eftersom den behåller inläggningsordningen, men den andra Inställningen som HashSet och TreeSet sorterar elementen innan de lagras. Detsamma beskrivs med exempel nedan.

Ange

Inmatning: Katt, Docka, Apple. Lagrad som: Apple, Cat, Doll.

Lista Inmatning: Katt, Docka, Apple.

Lagrad som: Katt, Docka, Apple.

Närvaron av dubbletter:

  • En uppsättning tillåter aldrig dubbletter medan en lista tillåter det. Om ett duplikatvärde måste läggas till i en lista blir det skrivet över. Titta på proverna för Set and List duplicates.

Ange inmatning: 10, 20, 20, 50.

Lagrad som: 10, 20, 50.

Listinmatning: 10, 20, 20, 50.

Lagrad som: 10, 20, 20, 50.

Nollvärden:

  • En uppsättning kan bara ha ett nollvärde medan en lista kan ha mer än ett nollvärde och är inte begränsat till något nummer.

Ange inmatning: null, null, man, hund, plan.

Lagrad som: null, hund, man, plan.

Lista Inmatning: null, null, man, hund, plan.

Lagrad som: null, null, man, hund, plan.

Användning av Iterator & ListIterator:

  • Iteratormetoden fungerar bra med både Set och List medan metoden ListIterator bara fungerar med List. ListIterator kan användas för att korsa framåt och bakåt genom listan.

Förekomsten av äldre klass:

  • Satsen har ingen äldre klass medan listgränssnittet har ett arv som kallas som "vektor". En vektor använder listgränssnittet och därför upprätthåller ordningsföljden för införandet. På grund av synkroniseringsinsatsen är prestandan för vektor i tillägg, raderingar och uppdateringar lite långsammare.

Implementeringar:

  • Få av de inställda implementationerna är HashSet, LinkedHashSet och TreeSet. Några av listans implementeringar inkluderar ArrayList och LinkedList.

När ska du använda Set & List?

Användningen av Set och List är helt beroende av kravet på underhåll av införingsordningen.Som vi har lärt oss att en uppsättning aldrig behåller ordningsföljden, kan den användas när ordern är av mindre betydelse. På samma sätt, använd List när du behöver behålla sekvensen för införandet också.

Skillnader i tabellform:

S. Ingen

Skillnader i Ange Lista 1.
Infogningsorder Den håller inläggsordern. Den första insatsen förblir i första hand och så vidare oberoende av dess värde. Det håller aldrig inläggsordern. 2.
Metoder Det använder metoderna som add (), clear (), innehåller (), isEmpty (), remove () och size (). Den använder metoder som add (), addAll (), get (), lastIndexOf (), ListIterator () med eller utan parameter, ta bort (), set () och subList (). 3.
Duplicates Det tillåter aldrig dubbletter och i fallet med sådana utseenden blir värdet överskridit. Det tillåter dubbletter. 4.
Nollvärden Det kan bara ha ett nollvärde vid maximalt. Det kan ha ett antal nullvärden. 5.
Användning av Iterator () & listIterator () Den använder endast metod iterator (). Den använder både iteratorn () och listanIterator (). 6.
Närvaro av äldre klass Det finns ingen äldre klass. Den har som Legacy klass kallas som en vektor. 7.
Implementeringar Få av de inställda gränssnittets implementeringar är HashSet, LinkedHashSet och Tree Set. Få av listgränssnittets implementeringar är LinkedList och ArrayList. Hoppas, vi har inkluderat alla möjliga skillnader mellan Set och List. Om du känner att vi har missat något, var snäll och låt oss veta.