HashMap
EntrySet
не поддерживает addAll
, полный останов.Синхронизация не имеет к этому никакого отношения.Чтобы скопировать все из h в g, просто выполните g.putAll(h);
.
. Для Map.Entry<K,V>
указан способ equals()
, означающий, что операции add
и addAll
не будут работать должным образом для entrySet.Map.Entry говорит, что две записи равны, если их ключ и значение совпадают.Таким образом, вы должны иметь возможность добавить ["Foo", "Baz"] в набор записей, который уже содержит ["Foo", "Bar"], поскольку они не совпадают в соответствии с equals
.Конечно, мы знаем, что это невозможно, entrySet не может содержать их обоих, новое отображение для Foo должно заменить старое.Так что методы просто не поддерживаются.