Schnittstelle: Rot; Implementierungsklasse: Schwarze Schriftart
1. Sammlung
Sammlung
| _____ set (Hashset)
| | _____ sortEdSet (Treeset)
| _____ Liste (ArrayList, LinkedList, Vector)
Sammlung : Die Root -Schnittstelle in der Sammelebene. JDK bietet keine Implementierungsklasse für diese Schnittstelle.
Liste : ordentlich (in der Reihenfolge der Platzierung) kann wiederholt werden und hat ein Index.
SET : Nicht ordnungsgemäß, nicht wiederholbar, kein Index.
SortEdSet : Ist eine Subinterface der festgelegten Schnittstelle. Die Elemente im sortierten sortierten werden geordnet (in alphabetischer Reihenfolge in aufsteigender Reihenfolge).
Durch die Vergleichsmethode der vergleichbaren Schnittstelle werden die Elemente ordnungsgemäß implementiert. Alle platzierten Elemente müssen die vergleichbare Schnittstelle implementieren (oder vom angegebenen Komparator akzeptiert werden).
Unterschiede zwischen Implementierungsklassen der Listenschnittstelle :
ArrayList : Ist im Wesentlichen ein Array. Themen sind nicht sicher. Abfrage (GET/SET) ist schnell, hinzufügen/entfernen (hinzufügen/entfernen) ist langsam.
LinkedList : Im Wesentlichen eine Zwei-Wege-verlinkte Liste. Themen sind nicht sicher. Abfrage (GET/SET) ist langsam, add/entfernen ist schnell.
Vektor : Es ist fast genau das gleiche wie ArrayList. Der einzige Unterschied besteht darin, dass der Vektor synchronisiert ist und fadensicher ist.
2. Kartensammlung
Karte (Hashmap, Hashtable)
| _____ sortedMap (Treemap)
Karte : Sie speichert ein Schlüsselwertpaar, das keine doppelten Schlüssel enthalten und doppelte Werte aufweisen kann.
SortEdMap : Die Subinterface SortedMap von MAP ist eine Karte, die Schlüssel in aufsteigender Reihenfolge ordnet.
Der Unterschied zwischen Hashmap , Hashtable und Treemap
HashMap : Threads sind nicht sicher. Sowohl Schlüssel als auch Wert können null sein. Die Elemente sind ungeordnet. Die zugrunde liegende Schicht ist die Hash -Tabellendatenstruktur.
Hashtable : Thread-Safe. Weder Schlüssel noch Wert können null sein. Die Elemente sind ungeordnet. Die zugrunde liegende Schicht ist die Hash -Tabellendatenstruktur.
Treemap : Themen sind nicht sicher. Weder Schlüssel noch Wert können null sein. Die Elemente werden geordnet (in aufsteigender alphabetischer Reihenfolge). Die zugrunde liegende Schicht ist die binäre Baumdatenstruktur.
3.. So implementieren Sie den Schlüssel und setzen Sie die MAP -Werte ohne Duplizierung ein
MAP setzt den gleichen Schlüssel und deckt dann den vorherigen ab
Map map = new HashMap ();
map.put ("name", "zhang san");
map.put ("name", "wangwu"); ------- Effektiv, überschreiben Sie den vorherigen
Wenn das Set das gleiche Element setzt, ist das erste gültig, und das nächste wird nicht in eingesetzt
Set set = new Hashset ();
set.add ("111"); --- effektiv
set.add ("222");
1. Hashmap Put und Hashset Add Add
Da die add () -Methode von Hashset tatsächlich umgerechnet wird, um die Methode von HashMap aufzurufen, um beim Hinzufügen eines Sammelelements Schlüsselwertpaare hinzuzufügen. Die Put () -Methode von HashMap ruft zuerst auf .HashCode (), um zu bestimmen, dass der Rückgabewert gleich ist. Wenn der Rückgabewert gleich ist, gibt er das Richtig durch gleichem Vergleich zurück. Schließlich wird angenommen, dass das Schlüsselobjekt gleich ist und bereits in HashMap existiert.
2. Treemap Put und Treeset Add
Wenn die Put -Methode in Treemap aufgerufen wird, um den Schlüsselwert hinzuzufügen, wird die Vergleichsmethode (oder vergleichen) des Objekts aufgerufen, um alle Schlüssel zu vergleichen. Wenn diese Methode 0 zurückgibt, werden die beiden Schlüssel als gleich angesehen.
Wenn Sie ein Element in Treeset addieren, rufen Sie die Vergleiche auf oder vergleiche die Methode, um die Position des Elements zu lokalisieren, dh Vergleich zurückzusetzen oder mit der Rückgabe 0 zu vergleichen, was als die gleiche Position angesehen wird, dh demselben Element