Ganlas:
私は、テキストの大きなブロックを読み込み、各ユニークワードと、それはテキストで思い付いた回数を保存しようとしています。これを行うには、私は、Wordクラスの配列リストを作りました。Wordのクラスは、単にそれが思いついた単語や回数を格納します。私はすでに前の単語を処理しているかどうかを確認するために.contains()関数を使用するのと同じ単語の重複を避けるために、いくつかの理由で、.contains()が機能していません。
class Main
{
public static void main(String[] args) throws FileNotFoundException
{
File file = new File("poe.text");
Scanner f = new Scanner(file);
ArrayList<Word> words = new ArrayList<Word>();
int total = 0;
while(f.hasNext())
{
Word temp = new Word(f.next().toLowerCase().trim());
//System.out.println("temp is "+temp.getWord());
total++;
if(words.contains(temp))
{
words.get(words.indexOf(temp)).up();
} else
{
words.add(temp);
}
}
for(Word w:words)
{
System.out.println(w.toString());
}
}
}
if文は真と評価されませんとの言葉は、それが既に存在していてもArrayListにすべての単語が追加されます。
Shubham:
リストのJavadocには、含まれている方法は、2つのオブジェクトが同じであるかどうかを評価するためのequals()メソッドを使用しています。あなたは、あなたの言葉のクラス内のequalsとhashCodeを実装していますか?
Javadocのhttp://docs.oracle.com/javase/7/docs/api/java/util/List.html#contains%28java.lang.Object%29