add()方法中的NullPointerException

时间:2013-03-10 00:12:42

标签: java arraylist nullpointerexception add

我的问题是我为add()创建了ArrayList方法。

我得到NullPointerException。如何在我的课程中实现add()方法,如下面的代码所示?

这是代码:

public class XY{

    private List<DictEntry> dict = new ArrayList<DictEntry>();

    public void add(String word, int frequency) {
        DictEntry neu = new DictEntry(word, frequency);
        if (word == null || frequency == 0) {
            return;
        }
        if (!dict.isEmpty()) {
            for (int i = 0; i < dict.size(); i++) {
                if (dict.get(i).getWord() == word) {
                    return;
                }
            }
        }
        dict.add(neu);
    }
}

2 个答案:

答案 0 :(得分:0)

您的数组中有null个元素。 dict.get(i).getWord()就像null.getWord()

答案 1 :(得分:0)

如果没有行号,就很难说。但无论如何,我建议不采取你的做法。

首先:不要重新实现存在的功能:

public class XY{
private List<DictEntry> dict = new ArrayList<DictEntry>();


    public void add(String word, int frequency) {
       if (word == null || frequency == 0) {
            return;
        }

       DictEntry neu = new DictEntry(word, frequency);
       if (!dict.contains(word)) {
         dict.add(word);
       }
    }
}

更好的是,使用更适合问题的结构。您正在将一个单词映射到一个计数 - 这就是您在DictEntry中所做的一切。那么为什么不呢:

public class XY{
private Map<String, Integer> dict = new HashMap<String, Integer>();

    public void add(String word, int frequency) {
       dict.put(word, frequency);
}