从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和LinkedList之间的性能差异
  • 为什么在尝试从列表中删除元素时会得到UnsupportedOperationException?
  • 为什么HashMap值不在List中转换?
  • 计数ArrayList中单词的出现次数
  • 将ArrayList保存到SharedPreferences
  • 无法将java.util.ArrayList的实例反序列化为VALUE_STRING
  • list.clear()vs list = new ArrayList <Integer>();
  • 通过意图传递ArrayList
  • 如何将包含整数的ArrayList转换为基本的int数组?
  • Java ArrayListreplace特定的索引
  • 数组列表容量与数组大小之间的区别