Was ist der Unterschied zwischen Set und List?

Antworten:

504

Listist eine geordnete Folge von Elementen, während Setes sich um eine eindeutige Liste von Elementen handelt, die ungeordnet ist (danke, Quinn Taylor ).

List<E>:

Eine bestellte Sammlung (auch als Sequenz bekannt). Der Benutzer dieser Schnittstelle hat eine genaue Kontrolle darüber, wo in der Liste jedes Element eingefügt wird. Der Benutzer kann über seinen ganzzahligen Index (Position in der Liste) auf Elemente zugreifen und nach Elementen in der Liste suchen.

Set<E>:

Eine Sammlung, die keine doppelten Elemente enthält. Formal enthalten Mengen kein Elementpaar e1 und e2, so dass e1.equals (e2) und höchstens ein Nullelement. Wie der Name andeutet, modelliert diese Schnittstelle die Abstraktion der mathematischen Menge.

Andrew Hare
quelle
7
Für ein SortedSet gibt es keine zwei Elemente, bei denen compareTo () == 0 ist, da equals nicht aufgerufen wird.
Peter Lawrey
34
Ein Set KANN bestellt werden, daher ist die erste Aussage dieser Antwort irreführend, auch wenn natürlich eine Liste ausgewählt werden muss, um die
Abholanordnung
24
FALSCH! Abhängig von der Implementierung kann ein Java-Set bestellt werden. Beispielsweise wird ein Java TreeSet bestellt. Im Kontext von Java besteht der einzige Unterschied zwischen einer Liste und einem Satz darin, dass der Satz eindeutige Elemente enthält. Im Kontext der Mathematik sind die Elemente einer Menge eindeutig und ungeordnet.
stackoverflowuser2010
44
Ja, ein Java-Set kann sein, aber es ist nicht unbedingt bestellt. Ja, wenn Sie ein TreeSet haben, können Sie sich darauf verlassen, dass dieses bestellt wird. Aber Sie müssen WISSEN, dass Sie ein TreeSet und nicht nur ein Set haben. Wenn Sie ein Set erhalten, können Sie sich nicht darauf verlassen, dass es bestellt wird. Eine Liste hingegen ist von Natur aus geordnet, und jede Implementierung der Liste muss bestellt werden. In Bezug auf die Schnittstellendefinition ist es also nicht besonders falsch zu sagen, dass ein Set ungeordnet ist, aber es ist vielleicht etwas technisch korrekter zu sagen, dass ein Set keine Garantie für die Elementreihenfolge bietet.
Spanky Quigman
14
Kombinieren Sie "bestellt" nicht mit "sortiert". Ebenso sollten Sie den Vertrag einer Schnittstelle und die Implementierungen der Schnittstelle nicht zusammenführen. Es ist auch falsch zu sagen, dass etwas, das "ungeordnet" ist, keine Reihenfolge hat, es bedeutet einfach, dass es keine Garantien für die Ausführung der Bestellung gibt (und dass die Reihenfolge zwischen Anrufen möglicherweise nicht stabil ist, anders als bei einer geordneten Liste).
Lilbyrdie
223
╔═══════════════════╦══════════════════════╦═════════════════════════════╗
                            List                     Set              
╠═══════════════════╬══════════════════════╬═════════════════════════════╣
     Duplicates              YES                     NO               
╠═══════════════════╬══════════════════════╬═════════════════════════════╣
       Order              ORDERED          DEPENDS ON IMPLEMENTATION  
╠═══════════════════╬══════════════════════╬═════════════════════════════╣
 Positional Access          YES                      NO                
╚═══════════════════╩══════════════════════╩═════════════════════════════╝
Sergii Shevchyk
quelle
2
Eine Sache zu beachten: Die Leistung des Positionszugriffs hängt stark von der zugrunde liegenden Implementierung ab, Array vs. verknüpfte Liste stackoverflow.com/questions/322715/…
Christophe Roussy
1
Wie werden Sets indiziert, wenn nicht durch Positionszugriff? (+1 für die ASCII-Tabelle)
tplive
72

Geordnete Elementlisten (eindeutig oder nicht)
Entspricht der Java-Schnittstelle mit dem NamenList
Kann über den Index aufgerufen werden

implemetentiert mit

  • LinkedList
  • Anordnungsliste

Listen eindeutiger Elemente:
Konform mit der Java-Schnittstelle mit dem NamenSet
Kann nicht über den Index aufgerufen werden

implemetentiert mit

  • HashSet (ungeordnet)
  • LinkedHashSet (bestellt)
  • TreeSet (sortiert nach natürlicher Reihenfolge oder nach bereitgestelltem Komparator)

Beide Schnittstellen Setund Listpassen sich an die Java Schnittstelle mit dem NamenCollection

ivan_ivanovich_ivanoff
quelle
28

Ein Set kann keine doppelten Elemente enthalten, während eine Liste dies kann. Eine Liste (in Java) impliziert auch die Reihenfolge.

Peter
quelle
16
  • Eine Liste ist eine geordnete Gruppierung von Elementen
  • Ein Set ist eine ungeordnete Gruppierung von Elementen, für die (normalerweise) keine Duplikate zulässig sind.

Konzeptionell beziehen wir uns normalerweise auf eine ungeordnete Gruppierung, die Duplikate als Tasche zulässt und keine Duplikate zulässt.

Hardwareguy
quelle
Ein Satz darf keine Duplikate enthalten.
Karim79
Einige Set-Implementierungen sind geordnet (z. B. LinkedHashSet, das eine LinkedList hinter den Kulissen verwaltet). Das Set ADT hat jedoch keine Bestellung.
Michael Myers
10

Liste

  1. Ist eine geordnete Gruppierung von Elementen.
  2. Liste wird zum Sammeln von Elementen mit Duplikaten verwendet.
  3. Neue Methoden werden in der List-Schnittstelle definiert.

einstellen

  1. Ist eine ungeordnete Gruppierung von Elementen.
  2. Set wird zum Sammeln von Elementen ohne Duplikate verwendet.
  3. In der Set-Schnittstelle sind keine neuen Methoden definiert, daher müssen wir die Collection-Schnittstellenmethoden nur für Set-Unterklassen verwenden.
Shankar Suligavi
quelle
10

Liste:

Lists erlauben im Allgemeinen doppelte Objekte. Lists müssen bestellt werden und sind daher über den Index zugänglich.

Implementierungsklassen umfassen: ArrayList,LinkedList ,Vector

Einstellen:

Sets nicht doppelten Objekte. Die meisten Implementierungen sind ungeordnet, aber implementierungsspezifisch.

Implementierungsklassen umfassen: HashSet(ungeordnet), LinkedHashSet(geordnet), TreeSet(geordnet nach natürlicher Reihenfolge oder nach bereitgestelltem Komparator)

csds
quelle
7

Wenn wir über die Java-Schnittstellen sprechen, schauen Sie sich doch das Javadoc an.

  • A Listist eine geordnete Sammlung (Sequenz), die normalerweise Duplikate zulässt
  • A Seta ist eine Sammlung, die keine doppelten Elemente enthält. Die Iterationsreihenfolge kann durch die Implementierung garantiert werden

Es gibt KEINE Erwähnung über mangelnde Ordnung in Bezug auf Sets: Dies hängt von der Implementierung ab.

Christophe Roussy
quelle
2
Richtig. LinkedHashSet enthält Elemente in Einfügereihenfolge.
ggb667
Es ist eine Schnittstelle, ALLES hängt von der Implementierung ab. List.get () könnte eine Datei erstellen, die die ersten 5 Dezimalstellen von pi enthält, und in einigen Implementierungen eine StackOverFlowException auslösen. Dies bedeutet nicht, dass Sie sagen können: "Eine Liste kann Dateien erstellen", da dies nicht Teil der ist Vertrag durch die Schnittstelle definiert. Der Docs Claim Set ist dem mathematischen Konzept eines Sets nachempfunden, das per Definition nicht geordnet ist. Angesichts eines Satzes in Ihrem Code können Sie nicht davon ausgehen, dass er bestellt ist, ohne die SOLID-Prinzipien zu verletzen.
Sara
@kai, ich bleibe normalerweise LinkedHashSetauf der linken Seite, wenn der Code später von der Bestellung abhängt . Ich verwende es nur, Setwenn ich es wirklich wie eines verwende, da Sie nicht davon ausgehen können, dass die zugrunde liegende Implementierung eine LinkedHashSetoder eine solche ist. Es kann heute sein, aber morgen ändert sich der Code und es wird fehlschlagen.
Christophe Roussy
Wenn Sie ein LinkedHashSet deklarieren, handelt es sich nicht um ein Set. Daher ist es kaum relevant, Aussagen darüber zu machen, wie sich Sets verhalten sollen. Ich würde sagen, dass das Zuweisen (möglicher) Ordnungsmäßigkeit zu Mengen, die auf einigen Implementierungen basieren, mit der Aussage vergleichbar ist: "Instanzen von Runnable haben eine Ausführungsmethode, die auf einem Thread ausgeführt werden soll. Außerdem öffnen sie eine DB-Verbindung und lesen je nach Implementierung Kundendaten. "" Natürlich können einige Implementierungen dies tun, aber das ist nicht das, was die ausführbare Schnittstelle impliziert.
Sara
5

Dies ist möglicherweise nicht die Antwort, nach der Sie suchen, aber das JavaDoc der Sammlungsklassen ist tatsächlich ziemlich beschreibend. Kopieren / Einfügen:

Eine bestellte Sammlung (auch als Sequenz bekannt). Der Benutzer dieser Schnittstelle hat eine genaue Kontrolle darüber, wo in der Liste jedes Element eingefügt wird. Der Benutzer kann über seinen ganzzahligen Index (Position in der Liste) auf Elemente zugreifen und nach Elementen in der Liste suchen.

Im Gegensatz zu Sets erlauben Listen normalerweise doppelte Elemente. Formalerweise erlauben Listen typischerweise Paare von Elementen e1 und e2, so dass e1.equals (e2), und sie erlauben typischerweise mehrere Nullelemente, wenn sie überhaupt Nullelemente zulassen. Es ist nicht unvorstellbar, dass jemand eine Liste implementieren möchte, die Duplikate verbietet, indem er Laufzeitausnahmen auslöst, wenn der Benutzer versucht, sie einzufügen. Wir erwarten jedoch, dass diese Verwendung selten ist.

Jeroen van Bergen
quelle
5

Ein Satz ist eine ungeordnete Gruppe unterschiedlicher Objekte. Es sind keine doppelten Objekte zulässig. Es wird im Allgemeinen mit dem Hash-Code der eingefügten Objekte implementiert. (Bestimmte Implementierungen können die Reihenfolge erhöhen, die Set-Schnittstelle selbst jedoch nicht.)

Eine Liste ist eine geordnete Gruppe von Objekten, die Duplikate enthalten können. Es könnte mit einem umgesetzt werden ArrayList, LinkedListusw.

Quinn Taylor
quelle
1
Ich bin verwirrt 😕! Was bedeutet geordnet / ungeordnet in diesem Zusammenhang? Bezieht es sich auf aufsteigende und absteigende Reihenfolge? Wenn ja, Listwird nicht bestellt 😕
malhobayyeb
4
Geordnet ist, wenn die Eingabedaten genau so angeordnet sind, wie sie vom Benutzer eingegeben wurden, während Sortiert ist, wenn die Eingabedaten lexikografisch oder in aufsteigender / absteigender Reihenfolge (in ganzzahligen Werten) sortiert sind. Ungeordnet bedeutet, dass die Eingabedaten in der vom Benutzer eingegebenen Reihenfolge gespeichert werden können oder nicht.
Akhil
5

Liste:
Liste erlaubt doppelte Elemente und Nullwerte. Einfache Suche mit dem entsprechenden Index der Elemente und es werden auch Elemente in Einfügereihenfolge angezeigt. Beispiel: (verknüpfte Liste)

import java.util.*;

public class ListExample {

 public static void main(String[] args) {
    // TODO Auto-generated method stub

    List<Integer> l=new LinkedList<Integer>();
    l.add(001);
    l.add(555);
    l.add(333);
    l.add(888);
    l.add(555);
    l.add(null);
    l.add(null);

    Iterator<Integer> il=l.iterator();

    System.out.println(l.get(0));

    while(il.hasNext()){
        System.out.println(il.next());
    }

    for(Integer str : l){
        System.out.println("Value:"+str);
    }
 }

}

Ausgabe:

1
1
555
333
888
555
null
null
Wert: 1
Wert: 555
Wert: 333
Wert: 888
Wert: 555
Wert: null
Wert: null

Set:
Set erlaubt keine doppelten Elemente und erlaubt einen einzelnen Nullwert. Es wird keine Reihenfolge zum Anzeigen von Elementen beibehalten. NurTreeSet wird nur in aufsteigender Reihenfolge angezeigt.

Beispiel: (TreeSet)

import java.util.TreeSet;

public class SetExample {

 public static void main(String[] args) {
    // TODO Auto-generated method stub

    TreeSet<String> set = new TreeSet<String>();
    try {
        set.add("hello");
        set.add("world");
        set.add("welcome");
        set.add("all");

        for (String num : set) {
            System.out.println( num);

        }
        set.add(null);
    } catch (NullPointerException e) {
        System.out.println(e);
        System.out.println("Set doesn't allow null value and duplicate value");
    }

 }

}

Ausgabe:

all
hallo
willkommen
Welt
java.lang.NullPointerException
Set nicht Nullwert und doppelten Wert erlauben

Indhu
quelle
3

1.Liste erlaubt doppelte Werte und set erlaubt keine doppelten Werte

2.List verwaltet die Reihenfolge, in der Sie Elemente in die Liste eingefügt haben. Set behält die Reihenfolge nicht bei. 3.Liste ist eine geordnete Folge von Elementen, während Set eine eindeutige Liste von Elementen ist, die nicht geordnet ist.

Rakesh
quelle
3

Liste Vs Set

1) Set erlaubt keine Duplikate. Liste erlaubt Duplizieren. Basierend auf der Implementierung von Set wird auch die Einfügereihenfolge beibehalten.

zB : LinkedHashSet. Es behält die Einfügereihenfolge bei. Bitte klicken Sie hier

2) enthält Methode. Durch die Art des Sets wird der Zugriff verbessert. Bester Fall ist es o (1). List muss jedoch ein Leistungsproblem aufrufen contains.

Siva Kumar
quelle
2

Alle ListKlassen behalten die Einfügereihenfolge bei. Sie verwenden unterschiedliche Implementierungen, die auf der Leistung und anderen Merkmalen basieren (z. B. ArrayListfür die Geschwindigkeit des Zugriffs auf einen bestimmten Index, LinkedListum einfach die Reihenfolge aufrechtzuerhalten). Da kein Schlüssel vorhanden ist, sind Duplikate zulässig.

Die SetKlassen behalten keine Einfügereihenfolge bei. Sie können optional eine bestimmte Reihenfolge festlegen (wie bei SortedSet), haben jedoch normalerweise eine implementierungsdefinierte Reihenfolge, die auf einer Hash-Funktion basiert (wie bei HashSet). Da auf Sets per Schlüssel zugegriffen wird, sind Duplikate nicht zulässig.

Lavinio
quelle
Maps speichern Objekte nach Schlüssel, legen jedoch Speicherobjekte unter Verwendung eines eindeutigen Werts fest, der sich auf das Objekt bezieht, normalerweise seinen Hash-Code. (Karten können auch Hash-Codes verwenden, um die Eindeutigkeit der Schlüssel zu überprüfen, dies ist jedoch nicht erforderlich.)
Quinn Taylor
1

Bestellung ... eine Liste hat eine Bestellung, eine Menge nicht.

Ricardo Marimon
quelle
2
Das Set ADT gibt keine Reihenfolge an, aber einige Set-Implementierungen (wie LinkedHashSet) behalten die Einfügereihenfolge bei.
Michael Myers
3
Der wichtigere Unterschied ist jedoch, dass Sets keine Duplikate zulassen. Eine Tasche / Multiset macht.
Quinn Taylor
Ein TreeSet hat Bestellung.
stackoverflowuser2010
1

Einige bemerkenswerte Unterschiede zwischen List und Set in Java sind wie folgt angegeben:

1) Der grundlegende Unterschied zwischen List und Set in Java besteht darin, doppelte Elemente zuzulassen. List in Java erlaubt Duplikate, während Set keine Duplikate zulässt. Wenn Sie ein Duplikat in Set einfügen, wird der ältere Wert ersetzt. Jede Implementierung von Set in Java enthält nur eindeutige Elemente.

2) Ein weiterer wesentlicher Unterschied zwischen List und Set in Java ist die Reihenfolge. Liste ist eine geordnete Sammlung, während Set eine ungeordnete Sammlung ist. Die Liste behält die Einfügereihenfolge der Elemente bei. Dies bedeutet, dass jedes Element, das zuvor eingefügt wurde, einen niedrigeren Index aufweist als jedes Element, das danach eingefügt wird. Set in Java behält keine Reihenfolge bei. Set bietet jedoch eine weitere Alternative namens SortedSet, mit der Set-Elemente in einer bestimmten Sortierreihenfolge gespeichert werden können, die durch die Methoden Comparable und Comparator für in Set gespeicherte Objekte definiert wird.

3) Die beliebte Implementierung der List-Schnittstelle in Java umfasst ArrayList, Vector und LinkedList. Während die beliebte Implementierung der Set-Schnittstelle HashSet, TreeSet und LinkedHashSet umfasst.

Es ist ziemlich klar, dass List ein guter Weg ist, wenn Sie die Einfügereihenfolge oder das Objekt beibehalten müssen und Ihre Sammlung Duplikate enthalten kann. Wenn Sie jedoch eine eindeutige Sammlung ohne Duplikate verwalten möchten, ist Set der richtige Weg.

Vibha Sanskrityayan
quelle
Hallo @Vibha, wenn ich die beiden Bedingungen abnehmen möchte? Ich meine, ich möchte nicht, dass meine Daten Duplikate enthalten, und ich möchte auch, dass sie bestellt werden.
Panadol Chong
1

Liste:

  1. Zulässige Duplikate.
  2. In Gruppierungselementen sortiert. (Mit anderen Worten, mit bestimmter Reihenfolge. Es muss nicht in aufsteigender Reihenfolge sortiert werden.)

Einstellen:

  1. Nicht erlaubte Duplikate.
  2. Ungeordnet in Gruppierungselementen. (Mit anderen Worten, ohne bestimmte Reihenfolge. Es kann in aufsteigender Reihenfolge angeordnet sein oder nicht.)
vijaybhupathi
quelle
0

Set<E>und List<E>werden beide zum Speichern von Elementen des Typs verwendet E. Der Unterschied besteht darin, dass Setungeordnet gespeichert wird und keine doppelten Werte zulässig sind. Listwird verwendet, um Elemente in geordneter Weise zu speichern, und es werden doppelte Werte zugelassen.

SetAuf Elemente kann nicht über eine Indexposition zugegriffen werden, und auf ListElemente kann über eine Indexposition zugegriffen werden.

Saibhushan
quelle
1
@BalusC bitte nicht kommentieren, ohne das Post-Datum zu sehen. Siehe den Beitrag, der zu dieser Zeit würdig war.
Yash
0

Hallo, es gibt bereits so viele Antworten. Lassen Sie mich auf einige Punkte hinweisen, die bisher nicht erwähnt wurden:

  • Die meisten List-Implementierungen (ArrayList, Vector) implementieren eineRandomAccess Schnittstelle, die eine Markierungsschnittstelle für einen schnelleren Zugriff darstellt. Keine der Set-Implementierungen macht das.
  • List verwendet einen speziellen Iterator namens, ListIterator der die Iteration in beide Richtungen unterstützt . Set verwendet Iterator, der nur eine Einwegiteration unterstützt
  • HashSet benötigt 5,5-mal mehr Speicher als ArrayList, um die gleiche Anzahl von Elementen zu speichern.
smruti ranjan
quelle
@smurti das ist etwas spät und ich bin nicht sicher, ob Sie es bemerkt haben, aber Ihr erster Punkt widerspricht sich selbst: "Die meisten Listenimplementierungen (ArrayList, Vector) implementieren RandomAccess ..." und "... Keine der Listen Implementierungen machen das "
Peter M
0

Der größte Unterschied ist das Grundkonzept.

Über die Set- und List- Oberfläche. Set ist Mathematikkonzept. Die Set- Methode erweitert die Sammlung. Fügen Sie jedoch keine neue Methode hinzu. size () bedeutet Kardinalität (mehr ist BitSet.cardinality, Linear Counter , Log Log , HyperLogLog ). addAll () bedeutet Vereinigung. keepAll () bedeutet Kreuzung. removeAll () bedeutet Unterschied.

Jedoch Liste fehlt diese Konzepte. List fügt eine Menge Methoden hinzu, um das Sequenzkonzept zu unterstützen, das die Collection- Schnittstelle nicht bietet. Kernkonzept ist INDEX . wie add (index, element), get (index), search (indexOf ()), remove (index) element. Die Liste enthält auch die Unterliste " Sammlungsansicht " . Set habe keine Ansicht. habe keinen Positionszugang. List bietet auch viele Algorithmen in der Collections- Klasse. sort (Liste), binarySearch (Liste), reverse (Liste), shuffle (Liste), fill (Liste). Die Methode params ist List interface. doppelte Elemente sind nur das Ergebnis von Konzepten. nicht der wesentliche Unterschied.

Der wesentliche Unterschied ist also das Konzept. Set ist ein Mathematik-Set-Konzept. Liste ist Sequenzkonzept.

LiLi
quelle
-1

Hier ist ein klares Beispiel mit Groovy. Ich erstelle ein Set und eine Liste. dann versuche ich 20 zufällig generierte Werte in jeder Liste zu speichern. Der generierte Wert kann im Bereich von 0 bis 5 liegen

s = [] as Set
l = []

max = 5
print "random Numbers :"
20.times{
e = (int)Math.random()*max
s << e
l << e
print "$e, "
}


println "\n"
println "Set : $s "
println "list : $l

Das Ergebnis :

zufällige Zahlen: 4, 1, 4, 0, 1, 2, 4, 0, 0, 3, 4, 3, 2, 0, 4, 0, 1, 3, 1, 3

Einstellen : [4, 1, 0, 2, 3]

Liste : [4, 1, 4, 0, 1, 2, 4, 0, 0, 3, 4, 3, 2, 0, 4, 0, 1, 3, 1, 3]

Sie können sehen, dass der Unterschied darin besteht, dass:

  • Set erlaubt keine doppelten Werte.
  • Liste erlaubt doppelte Werte.
Gerechtigkeit
quelle
1
Listen behalten auch die Reihenfolge bei.
Glen3B
-1

Wie die Antwort als SET haben Sie keinen doppelten Wert und List kann. Ordnung ist natürlich eine andere Sache, um sie voneinander zu unterscheiden.

Hongtao
quelle
-1

Set: Ein Set darf keine doppelten Elemente in seinen Sammlungen haben. Es ist auch eine ungeordnete Sammlung. Für den Zugriff auf die Daten von Set muss nur Iterator verwendet werden, und ein indexbasiertes Abrufen ist nicht möglich. Es wird hauptsächlich verwendet, wenn eine Eindeutigkeitssammlung erforderlich ist.

Liste: Eine Liste kann doppelte Elemente enthalten, wobei die natürliche Reihenfolge beim Einfügen angezeigt wird. Somit können Daten basierend auf Index oder Iterator abgerufen werden. Es wird häufig zum Speichern von Sammlungen verwendet, auf die basierend auf dem Index zugegriffen werden muss.

Arvind Chavhan
quelle
-2

THEMA Name: Liste VS Set

Ich habe gerade Javas wichtigstes Thema namens Collections Framework durchgearbeitet. Ich dachte, ich würde mein kleines Wissen über Sammlungen mit Ihnen teilen. Liste, Set, Karte sind das wichtigste Thema. Beginnen wir also mit List and Set.

Unterschied zwischen Liste und Satz:

  1. List ist eine Auflistungsklasse, die die Klasse erweitert AbstractList, wobei Set eine Auflistungsklasse ist, die die Klasse erweitert AbstractSet, aber beide die Collection-Schnittstelle implementiert.

  2. Die Listenschnittstelle erlaubt doppelte Werte (Elemente), während die Set-Schnittstelle keine doppelten Werte zulässt. Bei doppelten Elementen in Set werden ältere Werte ersetzt.

  3. Die Listenschnittstelle erlaubt NULL-Werte, während die Set-Schnittstelle keine Nullwerte zulässt. Bei Verwendung von Nullwerten in Set gibt es NullPointerException.

  4. Die Listenschnittstelle behält die Einfügereihenfolge bei. Das bedeutet, dass wir die Elemente in der Liste auf die gleiche Weise hinzufügen, wie wir sie mit dem Iterator oder für jeden Stil erhalten. Während SetImplementierungen nicht unbedingt die Einfügereihenfolge beibehalten. (Obwohl die SortedSetEinfügereihenfolge verwendet TreeSetund LinkedHashSetbeibehalten wird).

  5. Für die Listenschnittstelle sind eigene Methoden definiert, während für die Set-Schnittstelle keine eigene Methode definiert ist, sodass Set nur Methoden für die Sammlungsschnittstelle verwendet.

  6. Die Listenschnittstelle hat eine Legacy-Klasse, Vectorwährend die Set-Schnittstelle keine Legacy-Klasse hat

  7. Last but not least ... Die listIterator()Methode kann nur verwendet werden, um durch die Elemente in Listenklassen zu blättern, während wir die iterator () -Methode verwenden können, um auf Set-Klassenelemente zuzugreifen

Können wir noch etwas hinzufügen? Lass es mich wissen, bitte.

Vielen Dank.

user3542872
quelle
Zum einen Listund Setsind Schnittstellen , die auch als „Basis“ Implementierungen in Form einer abstrakten Klasse haben (die Sie erwähnt). Außerdem ist # 3 völlig ungenau , da die meisten Sätze Nullwerte zulassen (aber implementierungsabhängig). Ich verstehe # 5 und # 7 nicht und für # 6 Vectorist es kein Vermächtnis, sondern es ist nur synchronisiert und wird nicht für die Verwendung bevorzugt, außer wenn eine Synchronisation erforderlich ist.
Glen3B
-3

Einstellen:

Es dürfen keine doppelten Werte vorhanden sein. Die Reihenfolge hängt von der Implementierung ab. Standardmäßig ist es nicht bestellt. Kein Zugriff per Index möglich

Liste:

Kann doppelte Werte haben. Standardmäßig sortiert. Kann nach Index zugreifen

user2142109
quelle