我的问题是我为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);
}
}
答案 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);
}