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

Lol*_*lly 59 java arraylist

我正在使用java.util.ArrayList,我想删除所有特定元素的出现.

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

    l.remove("first");
Run Code Online (Sandbox Code Playgroud)

它只删除第一次出现.但是我希望在l.remove("first");我希望仅使用值"second"省略列表之后删除所有出现的事件.我通过谷歌搜索发现它可以通过创建新列表和调用来实现list.removeAll(newList).但是有可能在不创建新列表的情况下删除所有事件,或者是否有可用的API来实现它?

mik*_*ery 124

l.removeAll(Collections.singleton("first"));
Run Code Online (Sandbox Code Playgroud)


loo*_*per 33

使用Java 8的另一种方法:

l.removeIf("first"::equals);
Run Code Online (Sandbox Code Playgroud)


loo*_*per 22

while(l.remove("first")) { }
Run Code Online (Sandbox Code Playgroud)

这将从列表中删除"first"的所有元素.

  • @RohitJain它返回一个布尔值,同时删除该值.http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html#remove(java.lang.Object) (2认同)
  • 很好的答案!+1. (2认同)

sak*_*dar 7

您可以使用该removeAll()方法.

list.removeAll(Arrays.asList("someDuplicateString"));
Run Code Online (Sandbox Code Playgroud)