我已经研究过这个问题多年了,但是不能正确!
我有一个填充的hashmap和一个格式相同的hashmap(Map<Integer, ArrayList<String>>
),我一直在处理它(它的键值/ s等于填充的hashmap中的其他键,如0,1,2等) 。当我使用.put命令更新填充的hashmap时,我一直在努力的几个/一个替换填充的hashmap中的所有内容 - 这是正常的吗?我哪里错了?我期待它只是替换有问题的键+值....
请原谅不提供代码,但这意味着要发布相当数量的证明,只是想知道是否有人可以帮助解释这可能出错的地方。如果需要,我可以把东西放在一起展示......
非常有责任!
答案 0 :(得分:4)
这是代码示例的样子:
import java.util.*;
public class NumFormEx
{
public static ArrayList <String> listIt (String... params)
{
ArrayList <String> as = new ArrayList <String> ();
for (String s: params)
as.add (s);
return as;
}
public static void main (String args[])
{
Map <Integer, ArrayList<String>> mils = new HashMap<Integer, ArrayList<String>> ();
mils.put (1, listIt ("foo", "bar"));
mils.put (2, listIt ("zacka", "zacka"));
System.out.println ("mils:\t" + mils);
mils.put (1, listIt ("foobar"));
System.out.println ("mils:\t" + mils);
}
}
测试:
java NumFormEx
mils: {1=[foo, bar], 2=[zacka, zacka]}
mils: {1=[foobar], 2=[zacka, zacka]}
我会说:正如所料。
答案 1 :(得分:0)
由于地图不允许重复值,您可以这样做:
myMap.put(2, new ArrayList<String>());
这将使用键2的元素,并用新的(&#34;空白&#34;)列表替换它的列表。