1

私はこの質問を何年にもわたって調査してきましたが、正しく理解できません。

設定されたハッシュマップと、作業中の同じ形式のハッシュマップ(Map<Integer, ArrayList<String>>)があります(入力されたハッシュマップ内の他のキー(0、1、2など)と等しいキー値を持っています)。.putコマンドを使用して、入力されたハッシュマップを更新すると、作業中のいくつか/ 1つが、入力されたハッシュマップ内のすべてを置き換えます-これは正常ですか?どこが間違っているのですか?問題のキーと値を単純に置き換えることを期待していました。

申し訳ありませんが、コードを提供していませんが、これは、これがどこでうまくいかないのかを誰かが説明するのを手伝ってくれるかどうか疑問に思って、デモンストレーションするためにかなりの量を投稿することを意味します。必要に応じて、何かを一緒に投げて見せることができます...

とても感謝しております!

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 に答える