Heim >Java >javaLernprogramm >Detaillierte Einführung in die Java-Sammlung HashSet

Detaillierte Einführung in die Java-Sammlung HashSet

黄舟
黄舟Original
2017-03-13 17:45:041939Durchsuche

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(

new

HashSet()). 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

Variable

von 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:


HashSet-Traversal-Methode:
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.


(2) Durchlaufen Sie das HashSet durch for-each: Erhalten Sie zuerst das Array, das der Elementsammlung des HashSet entspricht, über toArray () und durchlaufen Sie dann das Array, um die Elemente zu erhalten.
(Iterator iterator = set.iterator()iterator.hasNext()) 
    {
        iterator.next()}


HashSet-Beispielcode:
String[] arr = (String[])set.toArray(String[])(String str:arr)
   {
       System.out.printf(str)   }


Ergebnis:
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn