Ich habe eine HashMap. Ich durchlaufe die Karte so:
%Vor%Ist die Art, wie ich die Karte verwende, sicher? Sicher in dem Sinne, dass die Map aufgrund der Iteration nicht beschädigt wird.
Sie könnten Ihren Code effizienter schreiben als:
%Vor%Dies ist eine Mikrooptimierung, aber manchmal ist es wichtig, und Sie verlieren nichts. Es ist kürzer und klärt jede Unklarheit über die Sicherheit auf!
Wie Sie in HashMap-Quellcode , die put
-Methode ändert nur die modCount
, wenn ein neuer Schlüssel bereitgestellt wird. modCount
wird vom Iterator verwendet, um nach Änderungen zu suchen. Wenn eine solche Änderung zwischen zwei Aufrufen des next()
eines Iterators aufgetreten ist, wird ein ConcurrentModificationException
ausgelöst. Dies bedeutet, dass Sie put
mit sicher verwenden.
Tags und Links java