从ArrayList中删除所有出现的元素

我正在使用java.util.ArrayList ,我想要删除特定元素的所有事件。

  List<String> l = new ArrayList<String>(); l.add("first"); l.add("first"); l.add("second"); l.remove("first"); 

这只是删除第一次出现。 但是我想要在l.remove("first");之后删除所有的事件l.remove("first"); 我希望列表只能用“秒”的值来排除。 我发现通过使用Googlesearch,可以通过创build新的列表和调用list.removeAll(newList) 。 但是是否有可能删除所有的事件而不创build新的列表或是否有任何API可用来实现它?

 l.removeAll(Collections.singleton("first")); 

使用Java 8的另一种方法是:

 l.removeIf("first"::equals); 
 while(l.remove("first")) { } 

这将从列表中删除“第一个”的所有元素。

您可以使用removeAll()方法。

 list.removeAll(Arrays.asList("someDuplicateString")); 

因为在你的例子中,你正在使用string,我想应该做的伎俩。

 for(int i = 0; i < list.size();i++){ if(list.get(i).equals(someStringNameOrValue)){ list.remove(i--); } } 

看起来我误解了你的问题。 我更新了我的答案。 我对吗? 你想删除所有“第一”的事件?