java - 从列表中删除对象 - 包含字符串 - 比较列表
问题描述
我的问题是 - 如何通过将其与第二个列表进行比较来从列表中删除对象。
List1 - 第一个列表包含电子邮件地址。
List2 - 第二个列表仅包含格式为“ @domain.com ”等的域
我想从第一个列表中删除包含第二个列表中的域的对象(电子邮件)。
例如:
如果 List1 包含电子邮件地址:“email@domain.com”,第二个 List2 包含“@domain.com” - 那么我想删除这封电子邮件(来自 List1)
我尝试使用:
List1.removeIf(s -> s.equals (List2));
List1.removeAll(List2);
不幸的是,它没有按我的意愿过滤我的列表。
我将不胜感激您的快速帮助
解决方案
就像是
list1.removeIf(email -> list2.stream().anyMatch(email::endsWith));
应该管用
推荐阅读
- kotlin - 在 Jetty 未按预期工作的情况下在 micronaut 上启用 HTTPS 支持
- python - 如何配置 Nginx 进行负载均衡
- powershell - 使用 PowerShell 在 IIS 中启用可选功能
- python - 了解 Python 内置函数如何映射到底层 C 实现
- linux - 错误“分段错误(核心转储)”是什么意思?
- python - Python Gsutil Google SDK 外壳
- php - Symfony\Component\HttpKernel\Exception\NotFoundHttpException
- sql - 如何在 `where` 条件下使用连接
- xml - SED:如何使用 sed 在 xml 中注释和取消注释多行
- anylogic - Anylogic消息动画