Java:显式设置哈希映射的键并保持对它的引用

  • 本文关键字:引用 Java 设置 哈希 映射 java
  • 更新时间 :
  • 英文 :

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是一个有效的数组列表)。但在那之后keys仍然有 0 号。

我怎样才能使keys的关系更强大,以便它实际上与哈希图绑定并包含其所有键。

ArrayList

的复制构造函数将映射中的所有键复制到 ArrayList,但如果在此之后更改映射,则不会反映它。

我可以想到3个选项:

  • 编写您自己的映射实现,嵌入 ArrayList 并使其保持最新
  • 每次更新地图时手动更新数组列表
  • 根本不要使用 ArrayList(当您需要访问密钥时keySet()在那里,所以我不确定您为什么需要一个)

你不能。

Map.keySet()返回映射的当前键集,然后将其加载到列表中。之后对地图的更改不会影响列表的内容。


如果需要,大多数人只会重新获取密钥集。你为什么不这样做呢?

最新更新