首页 > 解决方案 > 在 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

现在,我不明白为什么当我只是遍历时它会给出空指针异常。地图是空的吗?如果我之前添加键值对会怎样?如何解决这个空指针问题?

标签: java

解决方案


推荐阅读