我想创建一个.txt文件中存在的单词的字典。 这意味着其中写入的每个单词都应在字典中找到,但只能找到一次。 我在用此代码删除相同的单词时遇到了麻烦,我也不知道为什么。 字典是一个ArrayList对象。 checkWord(word)是一种检查单词是否可以作为字典一部分的方法(效果很好)。
//Reading the file until the end
while(reader.hasNext())
{
//Reading the next word
word = reader.next();
//Checking if the word is in the right format. If not, result is null.
word = checkWord(word);
//If the word is not eligible to be in the dictionary
if(word != null)
dictionary.add(word);
}
//Sorting the dictionary
Collections.sort(dictionary);
//To remove the words that are the same
for(int i=1; i<dictionary.size(); i++)
if(dictionary.get(i).compareTo(dictionary.get(i-1))==0)
dictionary.remove(i);
System.out.println(dictionary.size());
这应该输出:447 但是我知道了:661 原始字典(不带remove()方法)在959年。所以它可以工作,但不是每个单词都可以。 我还打印了ArrayList对象,可以看到其中有些词仍然存在。