首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayList removeAll

ArrayList removeAll
EN

Stack Overflow用户
提问于 2017-09-05 12:51:37
回答 1查看 1.2K关注 0票数 4

我有以下排列清单:

代码语言:javascript
复制
ArrayList<Obj o> list1 = new ArrayList<>();
ArrayList<String> list2 = new ArrayList<>();

我希望从list1中删除所有具有(string)ID的元素,该ID等于list2中的元素。

代码语言:javascript
复制
if(o.getId().equals(one of the strings from list2)) -> remove.

我如何使用removeAll或其他方式做到这一点,而不必编写额外的for。我在寻找最理想的方法来做到这一点。

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-05 12:58:10

如果您使用的是java 8,您可以这样做:

代码语言:javascript
复制
ArrayList<YourClass> list1 = new ArrayList<>();
ArrayList<String> list2 = new ArrayList<>();

list1.removeIf(item -> list2.contains(item.getId()));
// now list1 contains objects whose id is not in list2

假设YourClass有一个返回StringgetId()方法。

对于java 7,使用iterator是可行的方法:

代码语言:javascript
复制
Iterator<YourClass> iterator = list1.iterator();
while (iterator.hasNext()) {
    if (list2.contains(iterator.next().getId())) {
        iterator.remove();
    }
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46055463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档