每当我尝试编译此函数时,它会在第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;
}
}
答案 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>();