Heim >Java >javaLernprogramm >Detaillierte Einführung in die Java-Sammlung HashSet
HashSet ist ein Satz ohne doppelte Elemente. HashSet wird von HashMap implementiert und garantiert nicht die Reihenfolge der Elemente Elemente. HashSet ist nicht threadsicher. Wenn mehrere Threads gleichzeitig auf HashSet zugreifen, treten Probleme auf. Die Lösung besteht darin, Synchronisierungsvorgänge für das -Objekt durchzuführen, das das Set auf natürliche Weise kapselt. Sie können auch die Collections.synchronizedSet-Methode verwenden, um den Satz zu verpacken. Set s=Collectins.synchronizedSet(
newHashSet()). HashSet-Vererbungsimplementierungsdiagramm:
Aus der Abbildung können wir sehen:
(1) HashSet erbt von AbstractSet, und implementiert die Set
Schnittstelle. (2) HashSet ist im Wesentlichen eine Menge ohne doppelte Elemente, die über HashMap implementiert wird. Es gibt eine Map
Variablevon HashMap in HashSet, und die OperationFunktion von HashSet wird tatsächlich durch Map implementiert. HashSet ist ein Schlüssel, der Werte als HashMap speichert.
HashSet-Hauptfunktionen:
add(E object) clear() Object clone() contains(Object object) isEmpty() Iteratora8093152e673feb7aba1828c43532094 iterator() remove(Object object) size()
( 1) Durchlaufen Sie HashSet durch Iterator-Iteration: Rufen Sie zuerst den Iterator von HashSet gemäß iterator () ab und iterieren Sie, um jedes Element zu erhalten.
(Iterator iterator = set.iterator()iterator.hasNext()) { iterator.next()}
String[] arr = (String[])set.toArray(String[])(String str:arr) { System.out.printf(str) }
Hello { (String[] args) Exception { () } () { HashSet set = HashSet()set.add()set.add()set.add()set.add()set.add()System..printf(set.size())System..printf(set.contains())System..printf(set.contains())set.remove()String[] arr = (String[])set.toArray(String[])(String str:arr) System..printf(str)HashSet otherset = HashSet()otherset.add()otherset.add()otherset.add()HashSet removeset = (HashSet)set.clone()removeset.removeAll(otherset)System..printf(removeset)HashSet retainset = (HashSet)set.clone()retainset.retainAll(otherset)System..printf(retainset)(Iterator iterator = set.iterator()iterator.hasNext()) System..printf(iterator.next())set.clear()System..printf(set.isEmpty()?:)} }HashSet-Quellcode basierend auf Java8:
size : 5 HashSet contains a :true HashSet contains g :false for each : a for each : b for each : c for each : d removeset : [a, d] retainset : [b, c] iterator : a iterator : b iterator : c iterator : d set is empty
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Java-Sammlung HashSet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!