Arraylist删除元素

coo*_*ego 0 java

我有一个java代码,我有一个ArrayList,并希望从arraylist中删除元素.

   ArrayList <word> wordlist=new ArrayList<>();

   public void removeWord(String inputWord){    
        for(word z:wordlist){               
            if(z.getWord() == inputWord)
                wordlist.remove(inputWord);
            System.out.println("the word" +inputWord+ "is removed");
        }
        System.out.println(wordlist.size());
    }
Run Code Online (Sandbox Code Playgroud)

问题是该元素没有从列表中删除.

Roh*_*ain 5

您无法使用正在迭代的列表中删除元素enhanced for-loop.这显然有时会起作用,但并非总是如此,而且会抛出ConcurrentModificationException.

如果要在迭代时删除元素,则必须使用Iterator,其中包含Iterator#remove可用于删除当前元素的方法.

请参阅本教程: - http://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html了解如何使用iterators.

另外,正如其他人已经提到的那样,您应该使用Object#equals方法来比较字符串的内容.使用==你不比较内容,而是比较参考.