Сравнение списков - удаление элементов

Мой вопрос - Как удалить объекты из списка, сравнив его со вторым списком.


Список1. Первый список содержит адреса электронной почты.
Список2. Второй список содержит только домены в формате "@domain.com" и т. д.

Я хотел бы удалить объекты (электронные письма) из первого списка, который НЕ находится во втором списке (Список2 - домены).

Например:
Если список 1 содержит адрес электронной почты "[email protected]", а второй список 2 НЕ содержит адрес "@domain.com", то я хочу удалить этот адрес электронной почты ( из списка 1)

Я знаю, что это может быть дублированное сообщение:
Удалить объекты из списка - содержит строки - Сравнение списка
Но я не знаю, как создать отрицание (!) этих ответов...

Буду благодарен за быструю помощь


person Łukasz Szumowski    schedule 17.10.2018    source источник


Ответы (1)


На основе принятого ответа в ваш другой вопрос, вам просто нужно изменить anyMatch на noneMatch:

list1.removeIf(email -> list2.stream().noneMatch(email::endsWith));
person Kevin Cruijssen    schedule 17.10.2018