0
HashMap<String, int[]> H = new HashMap<String, int[]>(); 
H.put("drdetroit", new int[]{1,2});
H.put("drdetroit", new int[]{1,3}); 
System.out.println(H.get("drdetroit").toString());

プリントアウトします

[I@c3c749

これはハッシュ値だと思います(そうですか?)。実際の値を出力するにはどうすればよいですか?

4

5 に答える 5

2

あなたが使うArrays.toString(H.get("drdetroit"));

于 2012-12-05T10:05:19.243 に答える
2

これは私が信じた後のあなたです。HashMap は一意のキーしか格納できないため、1 つのキーに対して複数の値が必要な場合は、リストを使用する必要があります。

これを達成するためのより良い方法があるかもしれませんが、それは機能しており、それ自体がかなり表現力があり、何をどのように行うかがかなり明確です。

HashMap は List インターフェイスを受け入れるようになったため、それを実装する任意のリスト型を受け入れることができます。これはかなりきれいです!:)

ArrayList<int[]> values = new ArrayList<int[]>();

values.add(new int[]{1,2});
values.add(new int[]{1,3});

HashMap<String, List<int[]>> H = new HashMap<String, List<int[]>>(); 

H.put("drdetroit", values);

for(String key : H.keySet()) {
    for(int[] array : H.get(key)){
        System.out.println(Arrays.toString(array));
    }
}
于 2012-12-05T10:17:09.240 に答える
1
System.out.println(Arrays.toString(H.get("drdetroit")));

I -int配列を表し、c3c749 はハッシュコードです

于 2012-12-05T10:06:53.993 に答える
0

配列から文字列を作成しようとするためです。

たとえば、次のことができます。

String myArray = H.get("drdetroit");
System.out.println(myArray[0]);
于 2012-12-05T10:05:04.750 に答える
0

これを試して配列値を出力してください -

System.out.println(Arrays.toString(H.get("drdetroit")));

H.get("drdetroit").toString()配列クラス名と @ およびハッシュコードを hexString で返します。

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
于 2012-12-05T10:08:12.517 に答える