Skillnad mellan Set och List

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 kommit över begreppet Set in mathematics och Set här mer eller mindre samma. 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 Set as 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 för det och en sådan är LinkedhashSet eftersom den behåller elementets införingsordning.

I datorn innehåller Set några ytterligare egenskaper 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, dvs Set Interface, och det är inget annat än hela uppsättningen av element inklusive Metoderna.

Hur man genomför det?

Bara 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 [])

inträkning [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Ange set = nytt HashSet ();

Prova

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

set.add (count [i]);

System.out.println (set);

TreeSet sortedSeteg = new TreeSet (set);

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

System.out.println (sortedSeteg);

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

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

fånga (Undantag e)

Utsignalen från 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 liknar hur 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.

Observera bara 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.

Hur man genomför 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.add ( ”John”);
a1.add ( ”Nancy”);
a1.add ( ”Mary”);
a1.add ( ”Alice”);
System.out.println ("ArrayList Elements are");
System.out.print ("\ t" + a1);

Lista l1 = ny 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);

Utsignalen från 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 de skiljer sig?

  • Metoder och beskrivningar:

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

S.No Set - 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" av invoklistan och det ser till att inget element skrivs över genom att skifta de föregående elementen.
2. klar() - Det är att ta bort objekt från en samling. booleskt addAll (int index, samling c) - Den lägger till hela samlingen 'c' till uppkallistan 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. Objekt får (int index) - Den returnerar elementet eller objektet vid det angivna indexet.
4. är tom() - 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 (Objekt obj) - Det fungerar som omvänden av index för() Metod. 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 startindexet för listan.
7. storlek() - Det är att räkna antalet objekt eller element som en samling har. ListIterator listIterator (int index) - Det hjälper till att iterera genom att anropa listan som börjar vid det angivna indexet.
8. - Objektet tar bort (int index) - Det tar bort objektet vid det angivna indexet och returnerar det borttagna 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 invokinglistan vid det angivna indexet.
10. - Lista underlista (int start, int slutet) - Det är att inkludera objekten från indexet "start" till indexet "slutet" i listan som har åberopat metoden.
  • Insättning Orderunderhåll:

Setet behåller aldrig ordningen för de element som de är infogade i medan Listen behå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.

Uppsättning Input: Katt, docka, Apple.

Lagras som: Apple, Cat, Doll.

Lista Input: Katt, Docka, Apple.

Lagrad som: Katt, Docka, Apple.

  • Närvaron av duplikat:

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.

List Input: 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 uppsatta 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öringsordern. 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.No Skillnader i Uppsättning Lista
1. Insertion Order Den upprätthåller inläggsordern. Den första insatsen förblir i första hand och så vidare oberoende av dess värde. Det upprätthåller aldrig införingsordningen.
2. metoder Det använder metoderna som add (), clear (), innehåller (), isEmpty (), remove () och size (). Det använder metoderna som add (), addAll (), get (), lastIndexOf (), ListIterator () med eller utan parameter, ta bort (), set () och subList ().
3. dubbletter Det tillåter aldrig dubbletter och i fallet med sådana framträdanden blir värdet överskridit. Det tillåter dubbletter.
4. Nollvärden Det kan bara ha ett nollvärde vid det maximala. Det kan ha ett antal nullvärden.
5. Användning av Iterator () & listIterator () Den använder endast metoden iterator (). Den använder både iterator () och listIterator ().
6. Närvaro av äldre klass Det finns ingen äldre klass. Den har som Legacy klass kallas som en vektor.
7. implementeringar Några av de inställda gränssnittets implementeringar är HashSet, LinkedHashSet och Tree Set. Få av listans gränssnitt 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.