的HashMap<>错误。非法的类型开始

时间:2014-09-08 13:59:18

标签: java hashmap

每当我尝试编译此函数时,它会在第10行给出错误 - > ErrorMessage:CandidateCode.java.10:非法启动类型static HashMap hm = new HashMap<>(); 1错误 我正在尝试在网站的编译器上编译它,但是当我使用netbeans时,它完全正常。

import java.util.*;

public class CandidateCode {

    static int rep, total = 0, sum = 0, i = 0, j = 0;
    static HashMap<Integer, Integer> hm = new HashMap<>();
    static ArrayList<Integer> al;

    public static int DistributingMedals(int input1, int[] input2, int[] input3, 
                                         int[] input4, int input5) {

        //Write code here
        for (i = 0; i < input1; i++) {
            int start = input3[i];
            int end = input4[i];
            int count = input2[i];
            for (j = start; j <= end; j++) {
                try {
                    sum = hm.get(j);
                } catch (Exception e) {
                    e.getMessage();
                    sum = 0;
                }
                sum = sum + count;
                hm.put(j, sum);
            }
        }
        int chk = 0;
        Collection<Integer> valcol = hm.values();
        casper:
        while (chk < valcol.size()) {
            for (int max : valcol) {
                total = max + total;
                if (total > input5) {
                    al = new ArrayList(hm.keySet());
                    Object obj = al.get(chk);
                    rep = (Integer) obj;
                    break casper;
                }
                chk++;
            }
        }
        return rep;
    }
}

3 个答案:

答案 0 :(得分:5)

您的java编译器版本低于1.7<>仅允许1.7+。 更改项目属性并使用1.7+进行编译或将代码更改为:

static HashMap<Integer, Integer> hm = new HashMap<Integer,Integer>();

注意:如何检查编译器版本。

1. Right click on the project.
2. properties.
3. java compiler

答案 1 :(得分:2)

如果您使用的是java 1.6或更低版本,则必须提及泛型类型。只有java 1.7及以上版本支持&lt;&gt; 因此,要支持您可以使用的任何版本

HashMap hm = new HashMap<Integer, Integer>();

答案 2 :(得分:1)

将其更改为HashMap hm = new HashMap<Integer, Integer>();