无法使用 Map 的 getOrDefault 函数找到符号
Cannot find symbol with getOrDefault function of Map
我创建了一个整数类型的 Hashamp
HashMap<Integer, Integer> map = new HashMap<>();
地图的键是一个 Integer 类型的数组,我正在尝试使用 put 和 getOrDefault 函数计算每个键的出现次数。
下面是相同的代码片段 -
static int migratoryBirds(List<Integer> arr) {
int count = 0;
HashMap<Integer, Integer> map = new HashMap<>();
System.out.println(map.toString());
for(Integer bird : arr)
{
System.out.println(map.getOrDefault(bird,0));
map.put(bird,map.getOrDefault(bird,0)+1);
}
我在使用 getOrDefault 函数时遇到以下错误-
error: cannot find symbol
System.out.println(map.getOrDefault(bird,0));
^
symbol: method getOrDefault(Integer,int)
location: variable map of type HashMap<Integer,Integer>
如何解决错误?
getOrDefault 方法已添加到 Java 8
Since: 1.8
在早期版本中,您可以使用 get,如果为 null,则输入默认值。
请确保使用 Java-8 或更高版本,因为 Map#getOrDefault
是在 Java-8 中引入的。查看您的代码,我可以建议一个更好的选择,Map#merge
。
for(Integer bird : arr) {
map.marge(bird, 1, Integer::sum);
}
我创建了一个整数类型的 Hashamp
HashMap<Integer, Integer> map = new HashMap<>();
地图的键是一个 Integer 类型的数组,我正在尝试使用 put 和 getOrDefault 函数计算每个键的出现次数。
下面是相同的代码片段 -
static int migratoryBirds(List<Integer> arr) {
int count = 0;
HashMap<Integer, Integer> map = new HashMap<>();
System.out.println(map.toString());
for(Integer bird : arr)
{
System.out.println(map.getOrDefault(bird,0));
map.put(bird,map.getOrDefault(bird,0)+1);
}
我在使用 getOrDefault 函数时遇到以下错误-
error: cannot find symbol
System.out.println(map.getOrDefault(bird,0));
^
symbol: method getOrDefault(Integer,int)
location: variable map of type HashMap<Integer,Integer>
如何解决错误?
getOrDefault 方法已添加到 Java 8
Since: 1.8
在早期版本中,您可以使用 get,如果为 null,则输入默认值。
请确保使用 Java-8 或更高版本,因为 Map#getOrDefault
是在 Java-8 中引入的。查看您的代码,我可以建议一个更好的选择,Map#merge
。
for(Integer bird : arr) {
map.marge(bird, 1, Integer::sum);
}