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

时间:2012-11-26 13:31:14

标签: java 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");之后删除所有出现的事件。我希望列表只剩下值“second”。我通过谷歌搜索发现,可以通过创建新列表并调用list.removeAll(newList)来实现。但是可以在不创建新列表的情况下删除所有匹配项,或者是否有可用的API来实现它?

5 个答案:

答案 0 :(得分:118)

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

答案 1 :(得分:28)

使用Java 8的另一种方式:

l.removeIf("first"::equals);

答案 2 :(得分:22)

while(l.remove("first")) { }

这将从列表中删除所有元素“first”。

答案 3 :(得分:7)

您可以使用removeAll()方法。

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

答案 4 :(得分:1)

因为在你的例子中你正在使用字符串,我想应该这样做。

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

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

相关问题