Unterschied zwischen Set und Liste

Unterschied zwischen Array-Liste und verknüpfter Liste

Bevor wir uns mit den tatsächlichen Unterschieden befassen, lassen Sie uns wissen, was sie wirklich sind?

Was ist ein Set??

Wir sind in der Mathematik auf das Konzept von Set gestoßen, und das Set bedeutet hier mehr oder weniger dasselbe. Ja, es ist eine Sammlung von Elementen und in den meisten Fällen eine Sammlung ähnlicher Elemente. Sie können versuchen, diese Elemente zu einem Set hinzuzufügen und zu drucken, um zu verstehen, wie sie tatsächlich gespeichert werden.

Eingabe in ein Set: 20, 50, 10, 30.

Es wird tatsächlich in einem Set als gespeichert 10, 20, 30, 50.

Die Elemente werden hier sortiert und nicht in der Reihenfolge ihrer Einfügung gespeichert. Dies ist eine der Funktionen von Set, dass die Elemente vor dem Speichern immer sortiert werden. Natürlich gibt es auch Ausnahmen. Eine davon ist das LinkedhashSet, da die Einfügungsreihenfolge der Elemente beibehalten wird.

Computergesteuert enthält das Set einige zusätzliche Eigenschaften wie Methods und Vererbung. Methoden sind wie Funktionen und sie führen bestimmte Aufgaben aus, z. B. das Hinzufügen, Entfernen oder Durchlaufen von Elementen. Die meisten von uns sind mit dem Begriff Vererbung bekannt, und hier ist dies gleichbedeutend. Ja, wir können eine Methode aus ihrer Collection erben, sodass sie mit der Set-Schnittstelle verwendet werden kann. Wieder reden wir über einen neuen Begriff, d. H. Die Set-Schnittstelle, und es ist nichts weiter als die ganze Menge von Elementen einschließlich der Methoden.

Wie man es umsetzt?

Nur zum besseren Verständnis haben wir ein Set mit seiner Syntax dargestellt. Anhand der folgenden Syntax können Sie die verschiedenen Set-Typen wie HashSet und TreeSet identifizieren.

import java.util. *;

öffentliche Klasse Setexample

public static void main (Zeichenfolge args [])

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

Set set = new HashSet ();

Versuchen

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

set.add (count [i]);

System.out.println (gesetzt);

TreeSet sortiertSeteg = new TreeSet (set);

System.out.println ("Hier haben wir die sortierte Ausgabe:");

System.out.println (sortiertesSeteg);

System.out.println ("Schauen Sie sich das erste Element an:" + (Integer) SortiertSet.first ());

System.out.println ("Sehen Sie sich das letzte Element an:" + (Integer) sortiertSet.last ());

catch (Ausnahme e)

Die Ausgabe des obigen Codes ist wie folgt.

[25, 17, 76, 12, 88]
Hier haben wir die sortierte Ausgabe:
[12, 17, 25, 76, 88]
Schau dir das Erste Element an: 12
Betrachte das letzte Element: 88

Was ist Liste??

Eine Liste erweitert Collection ähnlich wie ein Set, behält jedoch die Reihenfolge beim Einfügen bei. Sie versuchen, einer Liste die folgenden Namen hinzuzufügen und sehen, wie sie hinzugefügt wird.

Die Eingabe in eine Liste: John, Nancy, Mary, Alice.

Wie es in einer Liste gespeichert wird: John, Nancy, Mary, Alice.

Beachten Sie einfach die Reihenfolge, in der sie eingefügt werden. Sie können feststellen, dass 'John' sowohl das erste Element in der Eingabe als auch die Ausgabe ist und von der gleichen Reihenfolge gefolgt wird, in der die Namen eingefügt werden. Wir können dies sogar als eine der Haupteigenschaften von List betrachten.

Wie man es umsetzt?

Schauen wir uns einige der Methoden von List wie ArrayList und LinkedList in der folgenden Syntax an.

import java.util. *;
öffentliche Klasse Collectionssample

public static void main (String [] args)

Liste a1 = neue ArrayList ();
a1.add ("John");
a1.add ("Nancy");
a1.add ("Mary");
a1.add ("Alice");
System.out.println (”ArrayList-Elemente sind”);
System.out.print ("\ t" + a1);

Liste l1 = new LinkedList ();
l1.add ("Silvia");
l1.add ("Arjun");
l1.add ("Deepika");
l1.add ("Susan");
System.out.println ();
System.out.println (”LinkedList-Elemente sind”);
System.out.print ("\ t" + l1);

Die Ausgabe der obigen Syntax lautet wie folgt.

ArrayList-Elemente sind

[John, Nancy, Mary, Alice]

LinkedList-Elemente

[Silvia, Arjun, Deepika, Susan]

Aus dem obigen Code ist sehr klar, dass sowohl die ArrayList als auch die LinkedList die Einfügungsreihenfolge beibehalten.

Wie unterscheiden sie sich??

  • Methoden und Beschreibungen:

Das Set und die Liste haben ihre eigenen Methoden und lassen Sie uns hier einige davon betrachten.

S.Nr Set - Methoden Liste - Methoden
1. hinzufügen() - Es ist das Hinzufügen von Objekten zu einer Sammlung. void add (int index, Object obj) - Sie fügt das Objekt 'obj' am angegebenen 'Index' der aufrufenden Liste hinzu und stellt sicher, dass kein Element überschrieben wird, indem die vorherigen Elemente verschoben werden.
2. klar() - Es soll Objekte aus einer Sammlung entfernen. boolean addAll (int index, Collection c) - Sie fügt die gesamte Auflistung 'c' der aufrufenden Liste und am angegebenen 'Index' hinzu. Es stellt außerdem sicher, dass keine Elemente überschrieben werden. Wir können die Funktionsfähigkeit auch überprüfen, indem wir den Rückgabewert prüfen. Wenn die Änderung erfolgreich ist, wird der Wert 'false' zurückgegeben..
3. enthält () - Es wird geprüft, ob das Set ein bestimmtes Objekt enthält. Es gibt einen Wert 'true' zurück, wenn das Objekt im Set vorhanden ist. Objekt get (int index) - Es gibt das Element oder Objekt am angegebenen 'Index' zurück..
4. ist leer() - Es soll festgestellt werden, ob die Sammlung keine Elemente enthält. Wenn kein Element vorhanden ist, wird der Wert "true" zurückgegeben. int lastIndexOf (Objekt obj) - Es funktioniert ähnlich wie auf der Rückseite Index von() Methode. Es gibt das letzte Vorkommen des angegebenen Objekts 'obj' zurück und ein Wert '1' wird zurückgegeben, wenn sich kein solches Objekt in der Liste befindet. Daher kann es auch als verwendet werden enthält () Methode der Set-Schnittstelle.
6. Löschen() - Ein Element wird aus einer Auflistung entfernt, indem es als Parameter für die Methode angegeben wird. ListIterator listIterator () - Es gibt einen Iterator zum Startindex der Liste zurück.
7. Größe() - Es ist die Anzahl der Objekte oder Elemente einer Sammlung zu zählen. ListIterator listIterator (int index) - Es hilft beim Durchlaufen der aufrufenden Liste ab dem angegebenen 'Index'..
8. - Objekt entfernen (int index) - Es löscht das Objekt am angegebenen 'Index' und gibt das gelöschte Element als Ergebnis zurück. Außerdem werden die resultierenden Listenindizes dekrementiert, um die Löschung anzuzeigen.
9. - Objektmenge (int index, Object obj) - Es ist das Objekt 'obj' der aufrufenden Liste am angegebenen 'Index' zuzuordnen..
10. - Liste subList (int start, int end) - Es enthält die Objekte vom Index 'start' bis zum Index 'end' in der Liste, die die Methode aufgerufen hat.
  • Einfügungsauftrag Pflege:

Das Set behält niemals die Reihenfolge der Elemente bei, in die sie eingefügt werden, während die Liste es enthält. Es gibt eine Ausnahme zu dieser Regel für LinkedHashSet, da die Reihenfolge beim Einfügen beibehalten wird. Das andere Set wie HashSet und TreeSet sortiert die Elemente jedoch vor dem Speichern. Das gleiche wird anhand von Beispielen beschrieben.

einstellen Eingabe: Katze, Puppe, Apfel.

Gespeichert unter: Apple, Cat, Doll.

Listeneingang: Katze, Puppe, Apfel.

Gespeichert unter: Katze, Puppe, Apple.

  • Die Anwesenheit von Duplikaten:

Ein Set erlaubt niemals Duplikate, während eine Liste es erlaubt. Wenn ein doppelter Wert zu einer Liste hinzugefügt werden muss, wird er überschrieben. Schauen Sie sich die Beispiele für Set- und List-Duplikate an.

Setzeingang: 10, 20, 20, 50.

Gespeichert unter: 10, 20, 50.

Listeneingang: 10, 20, 20, 50.

Gespeichert als: 10, 20, 20, 50.

  • Nullwerte:

Ein Set kann nur einen Nullwert haben, wohingegen eine Liste mehr als einen Nullwert haben kann und nicht auf eine Zahl beschränkt ist.

Setzeingang: null, null, Mann, Hund, Flugzeug.

Gespeichert als: null, Hund, Mann, Flugzeug.

Listeneingabe: null, null, Mann, Hund, Flugzeug.

Gespeichert als: null, null, Mann, Hund, Flugzeug.

  • Verwendung von Iterator & ListIterator:

Die Iterator-Methode funktioniert sowohl mit Set als auch mit List, wohingegen die Methode ListIterator nur mit List funktioniert. Mit dem ListIterator kann sowohl vorwärts als auch rückwärts durch die Liste gefahren werden.

  • Die Anwesenheit von Legacy Class:

Das Set hat keine Legacy-Klasse, während das List-Interface ein als "Vektor" bezeichnetes Legacy hat. Ein Vektor verwendet die List-Schnittstelle und behält daher die Reihenfolge beim Einfügen bei. Aufgrund der Synchronisationsanstrengungen ist die Leistung von Vector in Hinzufügungen, Löschvorgängen und Aktualisierungen etwas langsamer.

  • Implementierungen:

Einige der Set-Implementierungen sind HashSet, LinkedHashSet und TreeSet. Einige der Implementierungen von List umfassen ArrayList und LinkedList.

Wann verwenden Sie Set & List?

Die Verwendung von Set und List hängt ausschließlich von der Erfordernis der Aufrechterhaltung des Bestückungsauftrags ab. Da wir erfahren haben, dass ein Set niemals die Reihenfolge des Einfügens beibehält, kann es verwendet werden, wenn die Reihenfolge von geringerer Bedeutung ist. Auf ähnliche Weise verwenden Sie die Liste, wenn Sie auch die Reihenfolge der Einfügung beibehalten möchten.

Unterschiede in einer tabellarischen Form:

S.Nr Unterschiede in einstellen Liste
1. Einfügungsreihenfolge Die Einfügereihenfolge wird beibehalten. Das erste Einfügen bleibt an erster Stelle und so weiter, unabhängig von seinem Wert. Es behält nie die Reihenfolge der Einfügung bei.
2. Methoden Es verwendet die Methoden wie add (), clear (), contains (), isEmpty (), remove () und size (). Es verwendet die Methoden wie add (), addAll (), get (), lastIndexOf (), ListIterator () mit oder ohne Parameter, remove (), set () und subList ()..
3. Duplikate Es erlaubt niemals Duplikate und bei solchen Auftritten wird der Wert überschrieben. Es erlaubt Duplikate.
4. Nullwerte Es darf höchstens einen Nullwert enthalten. Es kann eine beliebige Anzahl von Nullwerten haben.
5. Verwendung von Iterator () & listIterator () Es verwendet nur die Methode Iterator (). Es verwendet sowohl den Iterator () als auch den ListIterator ()..
6. Präsenz der Altklasse Es gibt keine Legacy-Klasse. Es hat als Legacy-Klasse als Vektor bezeichnet.
7. Implementierungen Einige der Set-Schnittstellenimplementierungen sind HashSet, LinkedHashSet und Tree Set. Einige Implementierungen der List-Schnittstelle sind LinkedList und ArrayList.

Ich hoffe, wir haben alle möglichen Unterschiede zwischen dem Set und der Liste aufgenommen. Wenn Sie das Gefühl haben, etwas verpasst zu haben, teilen Sie uns dies bitte mit.