增量集合中的键

时间:2016-06-30 10:30:01

标签: java dictionary collections key

我有一个集合说

Map<Integer,Integer> myMap=new Map<Integer,Integer>();
myMap.put(1,"a");
myMap.put(2,"b");
myMap.put(3,"c");

我的地图目前有{1 =&#34; a&#34;,2 =&#34; b&#34;,3 =&#34; c&#34;}。 假设我想要一个值myMap.put(1,"d")

那么有没有一种方法可以添加现有的密钥并增加剩余的密钥,这样我的输出图就像 {1 =&#34; d&#34;,2 =&#34; a&#34;,3 =&#34; b&#34;,4 =&#34; c&#34;}?

1 个答案:

答案 0 :(得分:1)

您必须遍历Map的所有元素才能修改所有现有密钥的值。

例如,您可以使用Java 8 Streams生成一个新的Map,其中键增加,然后添加新的条目:

map = map.entrySet().stream().collect(Collectors.toMap(e->e.getKey()+1,e->e.getValue()));
map.put(1,"d");

但是,如果您的密钥是连续的整数(如您的示例所示),为什么不使用ArrayList<String>而不是Map<Integer,String>?这将通过简单地调用list.add(0,"d");为您提供所需的功能(索引的小差异从0开始而不是1)。