Verschil tussen set en lijst Verschil tussen

Anonim

verschil tussen Array-lijst en Linked List

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

Wat is een set?

We zijn het concept van 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 in een set: 20, 50, 10, 30.

Het is 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 Erfenis. 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 dit betekent hier hetzelfde. Ja, we kunnen een methode van de verzameling overnemen, zodat deze kan worden gebruikt met de setinterface. Nogmaals, we hebben het over een nieuwe term i. e. de Set-interface, en het is niets meer dan de hele set elementen inclusief de Methoden.

Hoe het implementeren?

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

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

probeer {

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

ingesteld. toe te voegen (aantal [i]);

}

Systeem. uit. println (set);

TreeSet sortedSeteg = new TreeSet (ingesteld);

Systeem. uit. println ("Hier hebben we de gesorteerde uitvoer:");

Systeem. uit. println (sortedSeteg);

Systeem. uit. println ("Kijk naar het eerste element:" + (geheel getal) selectedSet. first ());

Systeem. uit. println ("Kijk naar het laatste element:" + (Geheel getal) selectedSet.laatste ());

}

catch (uitzondering e) {}

}

}

De uitvoer van de bovenstaande code is als volgt.

[25, 17, 76, 12, 88]

Hier hebben we de gesorteerde uitvoer:

[12, 17, 25, 76, 88]

Kijk naar het eerste element: 12 > Kijk naar het laatste element: 88

Wat is een lijst?

Een lijst breidt de verzameling uit, vergelijkbaar met hoe een set heeft gedaan, maar behoudt de volgorde van invoegen. 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 implementeren?

Laten we enkele methoden van List bekijken zoals ArrayList en LinkedList in de onderstaande syntaxis.

java importeren. util. *;

openbare klasse Collectionssample {

public static void main (String [] args) {

lijst a1 = nieuwe ArrayList ();

a1. toe te voegen (“John”);

a1. toe te voegen (“Nancy”);

a1. toe te voegen (“Mary”);

a1. toe te voegen (“Alice”);

Systeem. uit. println ("ArrayList Elements are");

Systeem. uit. afdrukken (" t" + a1);

Lijst l1 = nieuwe LinkedList ();

L1. toe te voegen (“Silvia”);

L1. toe te voegen (“Arjun”);

L1. toe te voegen (“Deepika”);

L1. toe te voegen (“Susan”);

Systeem. uit. println ();

Systeem. uit. println ("LinkedList Elements are");

Systeem. uit. print (" t" + l1); }}

De uitvoer van de bovenstaande syntaxis is als volgt.

ArrayList-elementen zijn

[John, Nancy, Mary, Alice]

LinkedList-elementen

[Silvia, Arjun, Deepika, Susan]

Het is heel duidelijk uit de bovenstaande code dat beide de ArrayList en de LinkedList handhaaft de invoegopdracht.

Hoe verschillen ze?

Methoden en beschrijvingen:

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

S. Nee

Set - Methoden Lijst - Methoden 1.
add () - 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 het zorgt ervoor dat geen enkel element wordt overschreven door de vorige elementen te verschuiven. 2.
clear () - Het is om objecten uit een verzameling te verwijderen. boolean addAll (int index, Collection c) - Het voegt de volledige verzameling 'c' toe aan de aanroepende lijst 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.
contains () - Hiermee wordt gecontroleerd 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.
isEmpty () - Hiermee wordt bepaald 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 hetzelfde als het omgekeerde van de indexOf () 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 contains () methode van de ingestelde interface. 6.
remove () - Het is om een ​​element uit een verzameling te verwijderen door het op te geven als een parameter voor de methode. ListIterator listIterator () - Hiermee wordt een iterator geretourneerd naar de startindex van de lijst. 7.
size () - Hiermee wordt het aantal objecten of elementen uit een verzameling geteld. ListIterator listIterator (int index) - Het helpt bij het itereren door de aanroeplijst beginnend bij de opgegeven 'index'. 8.
- Object remove (int index) - Het verwijdert het object met 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 Object 'obj' toe te wijzen aan de aanroeplijst bij de opgegeven 'index'. 10.
- Sublijst weergeven (int start, int end) - Het is om de objecten uit de index 'start' op te nemen in de index 'end' in de lijst die de methode heeft aangeroepen. Onderhoud van invoegorder:
  • De set onderhoudt nooit de volgorde van de elementen waarin ze zijn geplaatst, terwijl de lijst deze wel behoudt. 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.

Stel

Invoer in: 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 toestaat. Als een dubbele waarde aan een lijst moet worden toegevoegd, wordt deze overschreven. Bekijk de voorbeelden voor Set en lijst duplicaten.

Ingang instellen: 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 invoer in: null, null, man, hond, vliegtuig.

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 moet ik Set & Lijst gebruiken?

Het gebruik van Set en Lijst is puur afhankelijk van de vereiste van onderhoud van de invoegopdracht.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. Nee

Verschillen in Set Lijst 1.
Invoegvolgorde Het onderhoudt de invoegopdracht. De eerste ingevoegde blijft op de eerste plaats enzovoort, ongeacht de waarde ervan. De invoegopdracht wordt nooit gehandhaafd. 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. Hiermee kunnen duplicaten worden gemaakt. 4.
Null-waarden Het mag maximaal één null-waarde 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 oudere klasse Er is geen klasse Legacy. Het heeft als Legacy-klasse een vector. 7.
Implementaties Weinigen 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.