我已经研究这个问题很久了,但无法正确回答!
我有一个填充的哈希图和一个格式相同的哈希图Map<Integer, ArrayList<String>>
( 当我使用 .put 命令更新填充的哈希图时,我一直在处理的少数/一个替换了填充的哈希图中的所有内容 - 这是正常的吗?我哪里错了?我期待它可以简单地替换有问题的键+值....
请原谅不提供代码,但这意味着发布相当多的代码来演示,只是想知道是否有人可以帮助解释这可能出错的地方。如果需要,我可以把一些东西放在一起展示......
非常感谢!
这是代码示例的样子:
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]}
我会说:正如预期的那样。
由于地图不允许重复值,您可以这样做:
myMap.put(2, new ArrayList<String>());
这将采用键 2 的元素并将其列表替换为新的(“空白”)列表。