-2

私の問題は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);
    }
}
4

2 に答える 2

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);
}
于 2013-03-10T00:26:50.417 に答える
0

null配列に要素があります。dict.get(i).getWord()のようなものですnull.getWord()

于 2013-03-10T00:20:49.987 に答える