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));
}
}