TreeMap中的空指针异常

Doe*_*ter 2 java nullpointerexception treemap

我试图实现一个简单的树形图来计算整数的出现,但它给了我一个NullPointerException,我不知道如何解决它.

Exception in thread "main" java.lang.NullPointerException
    at exercises.CountOccurances_20_07.main(CountOccurances_20_07.java:21)
Run Code Online (Sandbox Code Playgroud)

这是代码:

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class CountOccurances_20_07 
{
    public static void main(String[] args) 
    {
        int[] list = {2, 3, 40, 3, 5, 4, 3, 3, 3, 2, 0};
        Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
        for(int i: list)
        {
            int key = list[i];
            if(list.length > 1)
            {
                if(map.get(key) == 0)
                {
                    map.put(key, 1);
                }
                else
                {
                    int value = map.get(key).intValue(); // line 21
                    value ++;
                    map.put(key, value);
                }
            }
        }
        //get all entries into set
        Set<Map.Entry<Integer, Integer>> entrySet = map.entrySet();
        //get key and value from entry set
        for(Map.Entry<Integer, Integer> entry: entrySet)
            System.out.println(entry.getValue() + "\t" + entry.getKey());
    }
}
Run Code Online (Sandbox Code Playgroud)

Pet*_*rey 7

在你的情况下map.get(key)返回null,永远不会是0.你也在使用键,查找听起来不正确的自己.

for(int key: list) {
    Integer count = map.get(key);
    if (count == null) count = 0;
    map.put(key, count+1);
}
Run Code Online (Sandbox Code Playgroud)