【发布时间】:2019-03-19 21:41:04
【问题描述】:
我的问题是 - 如何通过与第二个列表进行比较来从列表中删除对象。
List1 - 第一个列表包含电子邮件地址。
List2 - 第二个列表包含仅域,格式为“@domain.com”等
我想从第一个列表中删除包含第二个列表中的域的对象(电子邮件)。
例如:
如果 List1 包含电子邮件地址:“email@domain.com”,第二个 List2 包含“@domain.com” - 那么我想删除这封电子邮件(从 List1)
我尝试使用:
List1.removeIf(s -> s.equals (List2));
List1.removeAll(List2);
很遗憾,它没有按我的意愿过滤我的列表。
感谢您的快速帮助
【问题讨论】:
-
字符串“someone@domain.com”不可能等于域的列表。他们甚至不是同一类型。你需要更多地了解基本的东西,比如平等意味着什么。您要做的是从电子邮件地址中提取域(即将字符串“someone@domain.com”转换为字符串“domain.com”,然后检查域列表是否包含 结果(即包含“domain.com”)。
标签: java arraylist iterator removeall