1

我已经研究这个问题很久了,但无法正确回答!

我有一个填充的哈希图和一个格式相同的哈希图Map<Integer, ArrayList<String>>( 当我使用 .put 命令更新填充的哈希图时,我一直在处理的少数/一个替换了填充的哈希图中的所有内容 - 这是正常的吗?我哪里错了?我期待它可以简单地替换有问题的键+值....

请原谅不提供代码,但这意味着发布相当多的代码来演示,只是想知道是否有人可以帮助解释这可能出错的地方。如果需要,我可以把一些东西放在一起展示......

非常感谢!

4

2 回答 2

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]}

我会说:正如预期的那样。

于 2012-04-30T00:16:56.317 回答
0

由于地图不允许重复值,您可以这样做:

myMap.put(2, new ArrayList<String>());

这将采用键 2 的元素并将其列表替换为新的(“空白”)列表。

于 2012-04-29T22:33:42.533 回答