java - 用相同的键+不同的值替换hashmap中的键+值

时间:2012-04-29 21:55:40

标签: java hashmap

我已经研究过这个问题多年了,但是不能正确!

我有一个填充的hashmap和一个格式相同的hashmap(Map<Integer, ArrayList<String>>),我一直在处理它(它的键值/ s等于填充的hashmap中的其他键,如0,1,2等) 。当我使用.put命令更新填充的hashmap时,我一直在努力的几个/一个替换填充的hashmap中的所有内容 - 这是正常的吗?我哪里错了?我期待它只是替换有问题的键+值....

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

非常有责任!

2 个答案:

答案 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;)列表替换它的列表。