Verschil tussen set en lijst

Verschil tussen matrixlijst en gekoppelde lijst

Voordat we ingaan op de werkelijke verschillen, laten we eerst weten wat ze werkelijk zijn?

Wat is een set?

We zijn het begrip Set in de wiskunde tegengekomen en de Set hier min of meer betekent hetzelfde. Ja, het is een verzameling elementen en in de meeste gevallen een verzameling vergelijkbare elementen. U kunt proberen deze elementen aan een set toe te voegen en proberen af ​​te drukken om te begrijpen hoe deze wordt opgeslagen.

Invoer naar een set: 20, 50, 10, 30.

Het wordt feitelijk opgeslagen in een Set als 10, 20, 30, 50.

De elementen worden hier gesorteerd en worden niet in de invoegvolgorde opgeslagen. Dit is een van de kenmerken van Set dat het altijd de elementen sorteert voordat het wordt opgeslagen en natuurlijk zijn er uitzonderingen op en een dergelijke is de LinkedhashSet omdat het de invoegvolgorde van de elementen onderhoudt.

In computertermen bevat de set weinig extra eigenschappen, zoals methoden en overerving. Methoden zijn net als functies en ze doen bepaalde taken zoals toevoegen, verwijderen of itereren door de verzameling elementen. De meesten van ons zijn bekend met de term Inheritance en het betekent hier hetzelfde. Ja, we kunnen een methode van de verzameling overnemen, zodat deze kan worden gebruikt met de setinterface. Opnieuw hebben we het over een nieuwe term, d.w.z. de Set Interface, en het is niets meer dan de hele set van elementen inclusief de Methoden.

Hoe het te implementeren?

Alleen voor een beter begrip hebben we een Set voorgesteld met zijn Syntaxis. Via de onderstaande syntaxis kunt u de verschillende soorten set identificeren, zoals de HashSet en TreeSet.

importeer java.util. *;

public class Setexample

public static void main (String args [])

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

Set instellen = nieuwe hashset ();

proberen

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

set.add (aantal [i]);

System.out.println (set);

TreeSet sortedSeteg = new TreeSet (set);

System.out.println ("Hier hebben we de gesorteerde uitvoer:");

System.out.println (sortedSeteg);

System.out.println ("Kijk naar het eerste element:" + (Integer) sortedSet.first ());

System.out.println ("Kijk naar het laatste element:" + (Integer) sortedSet.last ());

catch (Uitzondering e)

De uitvoer van de bovenstaande code is als volgt.

[25, 17, 76, 12, 88]
Hier hebben we de gesorteerde output:
[12, 17, 25, 76, 88]
Kijk naar het Eerste element: 12
Kijk naar het laatste element: 88

Wat is lijst?

Een lijst breidt de verzameling uit, vergelijkbaar met hoe een set het deed, maar de volgorde van invoegen blijft behouden. U probeert de volgende namen aan een lijst toe te voegen en te zien hoe eraan wordt toegevoegd.

De invoer voor een lijst: John, Nancy, Mary, Alice.

Hoe het wordt opgeslagen in een lijst: John, Nancy, Mary, Alice.

Let op de volgorde waarin ze zijn ingevoegd. U kunt identificeren dat 'John' het eerste element in de invoer is en ook wordt uitgevoerd en wordt gevolgd door dezelfde volgorde waarin de namen worden ingevoegd. We kunnen dit zelfs als een van de belangrijkste eigenschappen van List beschouwen.

Hoe het te implementeren?

Laten we eens kijken naar enkele van de methoden van List zoals ArrayList en LinkedList in de onderstaande syntaxis.

importeer java.util. *;
public class Collectionssample

public static void main (String [] args)

Lijst a1 = nieuwe ArrayList ();
a1.add ( “John”);
a1.add ( “Nancy”);
a1.add ( “Mary”);
a1.add ( “Alice”);
System.out.println ("ArrayList Elements are");
System.out.print ("\ t" + a1);

Lijst l1 = nieuwe 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);

De uitvoer van de bovenstaande syntaxis is als volgt.

ArrayList Elements zijn

[John, Nancy, Mary, Alice]

LinkedList-elementen

[Silvia, Arjun, Deepika, Susan]

Het is heel duidelijk uit de bovenstaande code dat zowel de ArrayList als de LinkedList de invoegopdracht handhaven.

Hoe ze verschillen?

  • Methoden en beschrijvingen:

De set en de lijst hebben hun eigen methoden en laten we hier enkele ervan bekijken.

S.No Set - Methoden Lijst - Methoden
1. toevoegen() - Het is om objecten aan een verzameling toe te voegen. void add (int index, Object obj) - Het voegt het object 'obj' toe aan de opgegeven 'index' van de aanroepende lijst en zorgt ervoor dat geen element wordt overschreven door de vorige elementen te verplaatsen.
2. duidelijk() - Het is om objecten uit een verzameling te verwijderen. boolean addAll (int-index, verzameling c) - Het voegt de volledige verzameling 'c' toe aan de aanroeplijst en aan de opgegeven 'index'. Het zorgt er ook voor dat er geen elementen worden overschreven. We kunnen ook de juistheid van de werking controleren door de retourwaarde te bekijken. Het geeft 'waar' als de wijziging succesvol is, anders geeft het een waarde 'false'.
3. bevat () - Het is om te controleren of de set een bepaald object bevat. Het geeft een waarde 'waar' als het object aanwezig is in de set. Object get (int index) - Het retourneert het element of object op de opgegeven 'index'.
4. is leeg() - Het is om te bepalen of de verzameling helpt omdat er geen elementen in zitten. Het geeft een waarde 'waar' als er geen element is. int lastIndexOf (Object obj) - Het werkt vergelijkbaar met het omgekeerde van de index van() Methode. Het retourneert het laatste exemplaar van het opgegeven object 'obj' en een waarde '1' wordt geretourneerd als er geen dergelijk object in de lijst staat. Daarom kan het ook worden gebruikt als bevat () Methode van de Set-interface.
6. verwijderen() - Het is om een ​​element uit een verzameling te verwijderen door het op te geven als een parameter voor de methode. ListIterator listIterator () - Het retourneert een iterator naar de startindex van de lijst.
7. grootte() - Het is om het aantal objecten of elementen te tellen dat een verzameling heeft. ListIterator listIterator (int index) - Het helpt bij het itereren door de aanroeplijst vanaf de opgegeven 'index'.
8. - Object verwijderen (int index) - Het verwijdert het object op de opgegeven 'index' en retourneert het verwijderde element als resultaat. Het verlaagt ook de resulterende lijstindices om de verwijdering weer te geven.
9. - Objectset (int-index, Object obj) - Het is om het object 'obj' toe te wijzen aan de aanroeplijst bij de opgegeven 'index'.
10. - Sublijst weergeven (int start, int end) - Het is om de objecten van de index 'start' op te nemen in de index 'end' in de lijst die de methode heeft aangeroepen.
  • Onderhoud van invoegopdracht:

De set houdt nooit de volgorde aan van de elementen waarin ze zijn geplaatst, terwijl de lijst deze wel handhaaft. Er is een uitzondering op deze regel voor LinkedHashSet omdat de volgorde van invoegen wordt gehandhaafd, maar de andere set zoals HashSet en TreeSet sorteert de elementen voordat ze worden opgeslagen. Hetzelfde wordt beschreven met onderstaande voorbeelden.

set Invoer: Cat, Doll, Apple.

Opgeslagen als: Apple, Cat, Doll.

Lijstinvoer: Cat, Doll, Apple.

Opgeslagen als: Cat, Doll, Apple.

  • De aanwezigheid van duplicaten:

Een set staat nooit duplicaten toe terwijl een lijst dit toelaat. Als een dubbele waarde aan een lijst moet worden toegevoegd, wordt deze overschreven. Bekijk de voorbeelden voor Set en lijst duplicaten.

Stel Input in: 10, 20, 20, 50.

Opgeslagen als: 10, 20, 50.

Lijstinvoer: 10, 20, 20, 50.

Opgeslagen als: 10, 20, 20, 50.

  • Null-waarden:

Een set kan slechts één nulwaarde hebben, terwijl een lijst meer dan één nulwaarde kan hebben en niet is beperkt tot een getal.

Stel Input in: null, null, Man, Dog, Plane.

Opgeslagen als: nul, hond, man, vliegtuig.

Lijstinvoer: null, null, man, hond, vliegtuig.

Opgeslagen als: null, null, Man, Dog, Plane.

  • Gebruik van Iterator & ListIterator:

De Iterator-methode werkt goed met zowel Set als Lijst, terwijl de methode ListIterator alleen met List werkt. De ListIterator kan zowel voorwaarts als achterwaarts door de lijst worden gebruikt.

  • De aanwezigheid van Legacy Class:

De set heeft geen oudere klasse, terwijl de lijst-interface een erfenis heeft die de 'vector' wordt genoemd. Een vector gebruikt de lijst-interface en behoudt daarom de invoegvolgorde. Vanwege de synchronisatie-inspanningen is de prestatie van vector bij toevoegingen, verwijderingen en updates iets langzamer.

  • implementaties:

Weinigen van de Set-implementaties zijn HashSet, LinkedHashSet en TreeSet. Enkele van de implementaties van List omvatten ArrayList en LinkedList.

Wanneer Set & List gebruiken?

Het gebruik van Set en Lijst is puur afhankelijk van de eis van onderhoud van de invoegvolgorde. Omdat we hebben geleerd dat een set nooit de volgorde van invoegen behoudt, kan deze worden gebruikt wanneer de volgorde van minder belang is. Gebruik op dezelfde manier de lijst als u ook de volgorde van invoegen moet behouden.

Verschillen in een tabelvorm:

S.No Verschillen in set Lijst
1. Invoegvolgorde Het onderhoudt de invoegvolgorde. De eerste ingevoegde blijft op de eerste plaats enzovoort, ongeacht de waarde ervan. Het houdt nooit de invoegvolgorde in stand.
2. methoden Het gebruikt de methoden zoals add (), clear (), contains (), isEmpty (), remove () en size (). Het gebruikt de methoden zoals add (), addAll (), get (), lastIndexOf (), ListIterator () met of zonder parameter, remove (), set () en subList ().
3. duplicaten Het staat nooit duplicaten toe en in het geval van dergelijke optredens wordt de waarde overschreven. Het maakt duplicaten mogelijk.
4. Null-waarden Het kan maximaal één nulwaarde hebben. Het kan elk aantal nulwaarden hebben.
5. Gebruik van Iterator () & listIterator () Het gebruikt alleen de methode iterator (). Het gebruikt zowel de iterator () als de listIterator ().
6. Aanwezigheid van Legacy Class Er is geen klasse Legacy. Het heeft als Legacy-klasse een vector.
7. implementaties Enkele van de Set interface-implementaties zijn HashSet, LinkedHashSet en Tree Set. Weinig van de interface-implementaties van de lijst zijn LinkedList en ArrayList.

Hoop, we hebben elk mogelijk verschil tussen de set en de lijst opgenomen. Als u denkt dat we iets hebben gemist, laat het ons dan weten.