java - 在 java 中使用 HashMap 的 getValue 方法时出现 Nullpointer 异常
问题描述
我试图解决这个问题:
我的解决方案是这样的:
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int n=sc.nextInt();
int size[]=new int[n];
String str[]= new String[n];
for(int i=0;i<n;i++)
{
// System.out.println("INSIDE LOOP");
size[i]=sc.nextInt();
// System.out.println(size[i]);
str[i]=sc.next();
}
for(int i=0;i<n;i++)
{
Map<Character,Integer> map = new HashMap<Character,Integer>();
int count=0;
int k=0;
for(int j = 0;j<size[i];j++)
{
if(map.containsKey(str[i].charAt(j)))
{
map.put(str[i].charAt(j),map.get(str[i].charAt(j)+1));
}
else
{
map.put(str[i].charAt(j),1);
}
}
for (Map.Entry<Character,Integer> var : map.entrySet())
{
if(var.getValue()==1) //**NULLPOINTER EXCEPTION IS OCCURING HERE**
{
k=1;
continue;
}
if(var.getValue()%2==0)
{
count=count+var.getValue();
}
}
/*
* for (Map.Entry<Character, Integer> var : map.entrySet()) {
* if(var.getValue()==1) { count++; continue; } if(var.getValue()%2==0) {
* count++; } }
*/
System.out.println(count);
}
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
}
}
而且无论我采用哪种方法来遍历它,都会给我同样的空指针异常。
这是错误:Solution.main(Solution.java:41) 处的 java.lang.NullPointerException
现在,我不明白为什么当我只是遍历时它会给出空指针异常。地图是空的吗?如果我之前添加键值对会怎样?如何解决这个空指针问题?
解决方案
推荐阅读
- c# - Azure函数HTTP触发器未取消请求
- mysql - 创建映射并在 MySQL 存储过程中使用它
- audio - FFmpeg 删除具有通过检测静默检测到的确切持续时间的静默
- prolog - 如何在 alpha-beta 算法中返回下一步?
- tensorflow - 如何在 tensorflow js 转换器中获取单个权重文件
- ios - 将 Bugsnag 与共享扩展一起使用
- ios - 为什么以前从堆栈中弹出的视图仍然处于活动状态
- javascript - ${this...} 在 Node v13.14 中不显示值
- python - Python netcdf cartopy - 绘制数据选择
- php - POST http://localhost:8000/offers-ajax/store 419 (未知状态) Laravel AJAX