public static HashMap<ArrayList<Integer>, String> map = new HashMap<ArrayList<Integer>, String>();
public static ArrayList<ArrayList<Integer>> keys = new ArrayList<>(map.keySet());
然后在main
map.put(key, "c");
(假设key
是有效的ArrayList)。但是keys
之后仍然有0。
如何使keys
的关系更强大,以便它实际上与HashMap绑定并包含其所有键。
答案 0 :(得分:3)
ArrayList的复制构造函数将映射中的所有键复制到ArrayList,但如果在该点之后更改映射,则不会反映该映射。
我可以想到3个选项:
keySet()
就在那里,所以我不确定为什么你需要一个)答案 1 :(得分:0)
你不能。
Map.keySet()
返回Map的当前密钥集,然后将其加载到列表中。之后对地图的更改不会影响列表的内容。
如果需要,大多数人会重新获得密钥集。你为什么不这样做?