Ich habe gemerkt (und geschätzt!), dass Guavas ImmutableMap.Builder
nicht erstellt werden kann, wenn dem Builder doppelte Schlüssel hinzugefügt wurden. Dasselbe Verhalten (doppelte Elemente hinzufügen) ist jedoch mit ImmutableSet
erfolgreich.
Gibt es einen Grund für diesen Unterschied und einen guten Weg, ein ImmutableSet
mit dem gleichen Fehlerverhalten zu konstruieren?
Testfall:
%Vor% Ja, dieses Verhalten ist beabsichtigt. Hier ist eine Möglichkeit, darüber nachzudenken: Set
s werden häufig aus anderen Collection
s erstellt, insbesondere List
, die Duplikate enthalten können. Es wäre sehr umständlich - und ineffizient -, wenn Benutzer ImmutableSet.copyOf(Sets.newHashSet(element))
schreiben müssten, wenn es Dubletten geben könnte. Auf der anderen Seite wird Map
s normalerweise aus anderen Map
s erstellt, die keine doppelten Schlüssel haben können.
Wenn Sie doppelte Elemente verbieten möchten, ist Ihre beste Wette etwas wie
%Vor%Tags und Links java guava duplicates