Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap存储了我的值_Java - Fatal编程技术网

Java HashMap存储了我的值

Java HashMap存储了我的值,java,Java,我假设这是散列值(是吗?)。如何让它打印我的实际值?因为您试图从数组中生成字符串 例如,您可以执行以下操作: [I@c3c749 因为您试图从数组中生成字符串 例如,您可以执行以下操作: [I@c3c749 您可以使用Arrays.toString(H.get(“drdetroit”)您使用数组 I-代表intarray,c3c749是hashcode I-代表int数组,c3c749是hashcode请尝试打印数组值- System.out.println(Arrays.toString(

我假设这是散列值(是吗?)。如何让它打印我的实际值?

因为您试图从数组中生成字符串

例如,您可以执行以下操作:

[I@c3c749

因为您试图从数组中生成字符串

例如,您可以执行以下操作:

[I@c3c749

您可以使用Arrays.toString(H.get(“drdetroit”)

您使用数组

I-代表
int
array,c3c749是hashcode


I-代表
int
数组,c3c749是hashcode

请尝试打印数组值-

System.out.println(Arrays.toString(H.get("drdetroit")));
H.get(“drdetroit”).toString()
返回数组类名和@以及hexString中的hashcode

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

请尝试打印数组值-

System.out.println(Arrays.toString(H.get("drdetroit")));
H.get(“drdetroit”).toString()
返回数组类名和@以及hexString中的hashcode

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

我相信这就是你想要的。 由于HashMap只能存储唯一的键,因此,如果您希望一(1)个键具有多个值,则必须使用列表

也许有更好的方法来实现这一点,但它正在发挥作用,它本身非常有表现力,并且非常清楚它的作用和方式

HashMap现在接受List接口,因此可以接受实现它的任何列表类型。这真是太好了!:)

ArrayList值=新的ArrayList();
add(新的int[]{1,2});
添加(新的int[]{1,3});
HashMap H=新的HashMap();
H.put(“drdetroit”,值);
用于(字符串键:H.keySet()){
for(int[]数组:H.get(key)){
System.out.println(array.toString(array));
}
}

我相信这就是你想要的。 由于HashMap只能存储唯一的键,因此,如果您希望一(1)个键具有多个值,则必须使用列表

也许有更好的方法来实现这一点,但它正在发挥作用,它本身非常有表现力,并且非常清楚它的作用和方式

HashMap现在接受List接口,因此可以接受实现它的任何列表类型。这真是太好了!:)

ArrayList值=新的ArrayList();
add(新的int[]{1,2});
添加(新的int[]{1,3});
HashMap H=新的HashMap();
H.put(“drdetroit”,值);
用于(字符串键:H.keySet()){
for(int[]数组:H.get(key)){
System.out.println(array.toString(array));
}
}


Mm,不,他只是打印它的对象值。Mm,不,他只是打印它的对象值。如果您想在该数组上使用
toString()
打印数组的值,您将得到与值完全不同的值,不管它是否在哈希映射中。使用
Arrays.toString(array)
代替。您的hashmap将只打印第一个值,因此不要混淆。:)@limelights:我如何使它同时打印它们=您必须将第二个键更改为唯一的,因为HashMaps只存储唯一的键。因此
H.put('drdetroit',值)
H.put('drchicago',值)
适用于youNah,但您可以使用列表制作地图。所以
HashMap H=newhashmap()然后将值添加到列表中。我将发布一个答案供您查看。如果您想在该数组上使用
toString()
打印数组的值,您将获得与值完全不同的内容,无论它是否在哈希映射中。使用
Arrays.toString(array)
代替。您的hashmap将只打印第一个值,因此不要混淆。:)@limelights:我如何使它同时打印它们=您必须将第二个键更改为唯一的,因为HashMaps只存储唯一的键。因此
H.put('drdetroit',值)
H.put('drchicago',值)
适用于youNah,但您可以使用列表制作地图。所以
HashMap H=newhashmap()然后将值添加到列表中。我将发布一个答案供您查看。这只打印第一个值,而不是第二个值。这是因为贴图每个键只能有1个值,所以您可以使用second@AviramSegal:我可以使用一个对象来允许每个键有多个值吗?Apache commons collections获得了一个多值映射
HashMap
?您可以尝试此选项。此选项仅打印第一个值,而不打印第二个值。这是因为贴图每个键只能有1个值,所以您可以使用second@AviramSegal:我可以使用一个对象来允许每个键有多个值吗?Apache commons collections获得了一个多值映射
HashMap
?你可以试试这个。c3c749不是哈希代码,它是内存地址。I@c3c749在c3c749处读取为整数。@Vash查看Quoi的answer@NarendraPathai,我错了。这是哈希的十六进制。c3c749不是哈希代码,它是内存地址。I@c3c749在c3c749处读取为整数。@Vash查看Quoi的answer@NarendraPathai,我错了。这是哈希的十六进制。
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));
    }
}