У меня есть карта (Map<String, Set<String>>
) и вы хотите скопировать карту в новый объект карты. Однако, если я просто прокормирую карту, скажем, HashMap
конструктор (new HashMap<String, Set<String>>(oldMap)
), он не будет делать полную копию и копирует только ссылку на набор, который может быть изменен, и эти изменения будут отражены на новой карте.Глубокое копирование карты Java со значениями, которые являются наборами
Есть ли более простой способ сделать полную копию, кроме итерации по каждой паре ключ/значение, и создать новый HashSet
для каждого набора, а затем добавить это к карте?
Я думаю, что это в основном дубликат [этого вопроса] (http://stackoverflow.com/questions/13049222/java-hashmap-deep-copy) глубокого копирования карты. На этот вопрос перечислено несколько ресурсов. – hinerm
Итерация - единственный чистый и быстрый способ. Не следует принимать более трех строк кода. –