Ich möchte verstehen, warum CopyOnWriteArraySet die doppelten Elemente in ihnen nicht erlaubt (Ignorieren). Ich verstehe die Tatsache, dass, da es SET ist, es beabsichtigt, Duplikate zu vermeiden.Duplikate in CopyOnWriteArraySet nicht erlaubt, obwohl es eine interne CopyOnWriteArrayList für alle seine Operationen verwendet
Aber Acccording zum Orakel Definition: CopyOnWriteArraySet: Ein Set, das für alle ihre Operationen eine interne CopyOnWriteArrayList verwendet. Oracle java docs
So praktisch sollte es Duplikate ermöglichen. Ist es die interne Implementierung der add() -Methode, die die doppelten Elemente einschränkt?
Werfen Sie einen Blick auf add-Methode ruft es 'addIfAbsent' als' public boolean add (E e) { Rückgabe al.addIfAbsent (e); } ' – SMA
Dieser Satz bedeutet, dass die Funktionalität des Satzes auf der CopyOnWriteArrayList aufgebaut ist. –
@ SMA: Dies beantwortet meine Frage. Wenn man alle Konzepte im Auge behält, ist es die interne Implementierung, die sie voneinander trennt. 'public CopyOnWriteArraySet() { al = neue CopyOnWriteArrayList(); } ' –