首页 > 解决方案 > 从列表中删除对象 - 包含字符串 - 比较列表

问题描述

我的问题是 - 如何通过将其与第二个列表进行比较来从列表中删除对象。

List1 - 第一个列表包含电子邮件地址
List2 - 第二个列表包含格式为“ @domain.com ”等的域

我想从第一个列表中删除包含第二个列表中的域的对象(电子邮件)。

例如:
如果 List1 包含电子邮件地址:“email@domain.com”,第二个 List2 包含“@domain.com” - 那么我想删除这封电子邮件(来自 List1)

我尝试使用:

List1.removeIf(s -> s.equals (List2));
List1.removeAll(List2);

不幸的是,它没有按我的意愿过滤我的列表。

我将不胜感激您的快速帮助

标签: javaarraylistiteratorremoveall

解决方案


就像是

list1.removeIf(email -> list2.stream().anyMatch(email::endsWith));

应该管用


推荐阅读