Java:HashMap以意想不到的方式运行

时间:2014-02-02 14:45:10

标签: java hashmap

所以我将这个hashmap与key作为String,并将值保存为整数数组。

HashMap<String, Integer[]> h = new HashMap<String, Integer[]>();
h.put("PID", new Integer[] {3, 5});

我首先尝试int,但后来我读到某些原始类型不能用于泛型。

所以,Eclipse说

Multiple markers at this line
- Syntax error on token(s), misplaced construct(s)
- Syntax error on tokens, ConstructorHeaderName expected 
 instead
- Syntax error on tokens, delete these tokens

为第二行。第一行很好。

2 个答案:

答案 0 :(得分:1)

此语句必须在任何函数或构造函数内执行。您无法在全局空间中插入,删除或更新。

这是一个声明,你不能在你想要的地方写声明

  

h.put(“PID”,new Integer [] {3,5});

同样,你不能执行下面的语句,因为int []是一个原始数组,而Integer []是一个整数对象的文件。你已经声明了key,value == String,Integer []所以你不能插入int [] array

  

h.put(“PID”,new int [] {3,5});

再次,Java Hashmap不支持原始数据类型。您必须使用Object作为Hashamp的键或值。

答案 1 :(得分:1)

此代码适用于我:

import java.util.HashMap;

public class HelloWorld{

     public static void main(String []args){
        HashMap<String, int[]> h = new HashMap<String, int[]>();
        h.put("PID", new int[] {3, 5});


        System.out.println(h.get("PID")[0]); //prints "3"
        System.out.println(h.get("PID")[1]); //prints "5"
     }
}