从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可用来实现它?

5 Solutions collect form web for “从ArrayList中删除所有出现的元素”

 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--); } } 

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

  • 我如何使我的ArrayList线程安全? 在Java中的另一个问题的方法?
  • Java ArrayList - 如何判断两个列表是否相等,顺序无关紧要?
  • 如何在Java中创build二维ArrayList?
  • 相当于java.util.ArrayList的Scala
  • 为什么Java的AbstractList的removeRange()方法受到保护?
  • 如何在迭代和从ArrayList中移除元素时避免java.util.ConcurrentModificationException
  • 在Java中将ArrayList转换为数组
  • 使ArrayList只读
  • 如何找出每个对象在ArrayList <Object>中的types?
  • 自定义对象的Android ArrayList - 保存到SharedPreferences - 可序列化?
  • 并发修改exception:添加到ArrayList