Unterschied zwischen Set und List Unterschied zwischen

Anonim

Unterschied zwischen Array List und Linked List

kennengelernt. Bevor wir uns mit den tatsächlichen Unterschieden beschäftigen, wollen wir herausfinden, was sie wirklich sind.

Was ist ein Set?

Wir haben das Konzept von Set in Mathematik gefunden und das Set hier bedeutet 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 es tatsächlich gespeichert ist.

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

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

Die Elemente sind hier sortiert und werden nicht in ihrer Reihenfolge gespeichert. Dies ist eine der Eigenschaften von Set, dass es immer die Elemente vor dem Speichern sortiert und natürlich gibt es Ausnahmen dazu und eines davon ist LinkedhashSet, da es die Reihenfolge der Elemente beibehält.

Computertechnisch enthält das Set einige zusätzliche Eigenschaften wie Methoden und Vererbung. Methoden sind genau wie Funktionen und sie erledigen bestimmte Aufgaben wie Hinzufügen, Entfernen oder Iterieren der Elemente. Die meisten von uns sind mit dem Begriff der Vererbung gut vertraut und das ist auch hier so. Ja, wir können eine Methode von ihrer Collection erben, sodass sie mit der Set-Schnittstelle verwendet werden kann. Wieder sprechen wir über einen neuen Begriff. e. die Set-Schnittstelle, und es ist nichts mehr als die ganze Reihe von Elementen einschließlich der Methoden.

Wie man es umsetzt?

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

importieren Sie Java. util. *;

öffentliche Klasse Setexample {

public static void main (String args []) {

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

Setze set = new HashSet ();

versuche {

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

gesetzt. addieren (zählen [i]);

}

System. aus. println (eingestellt);

TreeSet sortedSeteg = neues TreeSet (set);

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

System. aus. println (sortierteSteg);

System. aus. println ("Betrachte das erste Element:" + (Integer) sortierte Menge. first ());

System. aus. println ("Betrachte das letzte Element:" + (Integer) sortedSet. last ());

}

catch (Exception 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]

Sehen Sie sich das erste Element an: 12 > Sehen Sie sich das letzte Element an: 88

Was ist Liste?

Eine Liste erweitert Collection ähnlich wie ein Set, behält jedoch die Reihenfolge der Einfügung bei. Sie versuchen, einer Liste die folgenden Namen hinzuzufügen und zu 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 die Reihenfolge, in der sie eingefügt werden. Sie können feststellen, dass "John" das erste Element in der Eingabe sowie in der Ausgabe ist und von der gleichen Reihenfolge gefolgt wird, in der die Namen eingefügt werden. Wir können sogar eine der Haupteigenschaften von List betrachten.

Wie implementiert man es?

Lassen Sie uns einige der Methoden von List wie ArrayList und LinkedList in der folgenden Syntax betrachten.

importieren Sie Java. util. *;

Öffentliche Klasse Collectionssample {

public static void main (String [] Argumente) {

List a1 = new ArrayList ();

a1. füge hinzu ("John");

a1. füge hinzu ("Nancy");

a1. füge hinzu ("Maria");

a1. füge hinzu ("Alice");

System. aus. println ("ArrayList-Elemente sind");

System. aus. Druck (" t" + a1);

Liste l1 = new LinkedList ();

l1. füge hinzu ("Silvia");

l1. füge hinzu ("Arjun");

l1. füge hinzu ("Deepika");

l1. füge hinzu ("Susan");

System. aus. println ();

System. aus. println ("LinkedList Elements sind");

System. aus. Druck (" t" + l1); }}

Die Ausgabe der obigen Syntax ist wie folgt.

ArrayList-Elemente sind

[John, Nancy, Mary, Alice]

LinkedList-Elemente

[Silvia, Arjun, Deepika, Susan]

Aus dem obigen Code wird sehr deutlich, dass sowohl die ArrayList und die LinkedList behält den Anzeigenauftrag bei.

Wie unterscheiden sie sich?

Methoden und Beschreibungen:

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

S. Nein

Set - Methoden Liste - Methoden 1.
add () - Zum Hinzufügen von Objekten zu einer Sammlung. void add (int index, Objekt obj) - Er fügt das Objekt 'obj' am angegebenen 'index' der aufzurufenden Liste hinzu und stellt sicher, dass kein Element durch Verschieben der vorherigen Elemente überschrieben wird. 2.
clear () - Es ist Objekte aus einer Sammlung zu entfernen. boolean addAll (int index, Sammlung c) - Er fügt der aufrufenden Liste und dem angegebenen 'index' die gesamte Sammlung 'c' hinzu. Es stellt auch sicher, dass keine Elemente überschrieben werden. Wir können auch die Korrektheit seiner Operation überprüfen, indem wir den Rückgabewert untersuchen. Wenn die Änderung erfolgreich ist, wird 'true' zurückgegeben, andernfalls wird der Wert 'false' zurückgegeben. 3.
enthält () - Es soll überprüft werden, ob das Set ein bestimmtes Objekt enthält. Es gibt einen Wert 'wahr' zurück, wenn das Objekt im Set vorhanden ist. Objekt get (int index) - Gibt das Element oder Objekt am angegebenen 'index' zurück. 4.
isEmpty () - Es wird bestimmt, ob die Sammlung hilft, da keine Elemente darin enthalten sind. Es gibt einen Wert 'true' zurück, wenn kein Element vorhanden ist. int lastIndexOf (Object obj) - Es funktioniert ähnlich wie die Umkehrung der Methode indexOf () . Es gibt das letzte Vorkommen des angegebenen Object 'obj' zurück und ein Wert '1' wird zurückgegeben, wenn kein solches Objekt in der Liste vorhanden ist. Daher kann es auch als contains () Methode der Set-Schnittstelle verwendet werden. 6.
remove () - Es wird ein Element aus einer Sammlung entfernt, indem es als Parameter für die Methode angegeben wird. ListIterator listIterator () - Gibt einen Iterator an den Startindex der Liste zurück. 7.
size () - Es zählt die Anzahl der Objekte oder Elemente, die eine Sammlung hat. ListIterator listIterator (int index) - Es hilft bei der Iteration durch die aufrufende Liste, beginnend mit dem angegebenen 'index'. 8.
- Objekt entfernen (int index) - Löscht das Objekt am angegebenen 'index' und gibt das gelöschte Element als Ergebnis zurück. Sie dekrementiert auch die resultierenden Listenindizes, um die Löschung widerzuspiegeln. 9.
- Objektmenge (int index, Object obj) - Es ist das Objekt 'obj' der aufrufenden Liste am angegebenen 'index' zuzuordnen. 10.
- List subList (int start, int end) - Es soll die Objekte vom Index 'start' zum Index 'end' in der Liste aufnehmen, die die Methode aufgerufen hat. Wartung der Einfügeaufträge:
  • Das Set behält niemals die Reihenfolge der Elemente bei, in die es eingefügt wurde, während die Liste es verwaltet. Es gibt eine Ausnahme für diese Regel für LinkedHashSet, da sie die Reihenfolge der Einfügung beibehält, aber das andere Set wie HashSet und TreeSet sortiert die Elemente vor dem Speichern. Das gleiche wird mit Beispielen unten beschrieben.

Set

Eingabe: Katze, Puppe, Apfel. Gespeichert als: Apfel, Katze, Puppe.

Listeneingabe: Katze, Puppe, Apfel.

Gespeichert als: Katze, Puppe, Apfel.

Das Vorhandensein von Duplikaten:

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

Eingabe setzen: 10, 20, 20, 50.

Gespeichert als: 10, 20, 50.

Listeneingabe: 10, 20, 20, 50.

Gespeichert als: 10, 20, 20, 50.

Nullwerte:

  • Ein Satz kann nur einen Nullwert haben, während eine Liste mehr als einen Nullwert haben kann und nicht auf irgendeine Zahl beschränkt ist.

Eingabe festlegen: null, null, Man, Hund, Ebene.

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 gut mit Set und List, während die Methode ListIterator nur mit List arbeitet. Der ListIterator kann verwendet werden, um vorwärts und rückwärts durch die Liste zu gehen.

Das Vorhandensein der Legacy-Klasse:

  • Das Set hat keine Legacy-Klasse, während die List-Schnittstelle ein Vermächtnis hat, das als "Vektor" bezeichnet wird. Ein Vektor verwendet die List-Schnittstelle und behält daher die Reihenfolge der Einfügung bei. Aufgrund der Synchronisierungsbemühungen ist die Leistung des Vektors bei Hinzufügungen, Löschungen und Aktualisierungen etwas langsamer.

Implementierungen:

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

Wann verwenden Sie Set & List?

Die Verwendung von Set und List ist ausschließlich abhängig von der Anforderung zur Pflege des Anzeigenauftrags.Da wir gelernt haben, dass ein Set niemals die Reihenfolge des Einfügens beibehält, kann es verwendet werden, wenn die Reihenfolge von geringerer Wichtigkeit ist. Verwenden Sie in ähnlicher Weise die Liste, wenn Sie auch die Reihenfolge der Einfügung beibehalten müssen.

Unterschiede in einer Tabellenform:

S. Nein

Unterschiede in Stellen Sie Liste 1 ein.
Einfügeauftrag Er behält den Anzeigenauftrag bei. Die erste eingefügte bleibt an erster Stelle usw. unabhängig von ihrem Wert. Es behält nie den Anzeigenauftrag 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 Erscheinungen wird der Wert überschrieben. Es erlaubt Duplikate. 4.
Nullwerte Es kann maximal nur einen Nullwert haben. 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.
Vorhandensein der Legacy-Klasse Es gibt keine Legacy-Klasse. Es hat als Legacy-Klasse einen Vektor. 7.
Implementierungen Einige der Implementierungen der Set-Schnittstelle sind HashSet, LinkedHashSet und Tree Set. Einige der List-Schnittstellenimplementierungen sind LinkedList und ArrayList. Hoffentlich haben wir alle möglichen Unterschiede zwischen dem Set und der Liste berücksichtigt. Wenn Sie das Gefühl haben, etwas verpasst zu haben, lassen Sie es uns bitte wissen.