如何删除ArrayList对象中的现有字符串以使一个对象仅出现一次?

时间:2019-04-05 04:08:16

标签: java arraylist io

我想创建一个.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对象,可以看到其中有些词仍然存在。

0 个答案:

没有答案