Я пытаюсь использовать Java 8, чтобы решить следующую проблему. Скажем, у меня есть следующие (A
и B
пользовательские классы)
ArrayList<A> skills;
HashSet<B> workCenters;
Что мне нужно сделать, это выяснить, есть ли значение a.getDepartment()
, которое является String
, также содержащимся в B
, который также имеет метод String getDepartment()
, а затем собрать их в новый List<A>
.
Я пробовал такое:
List<A> collect = skills.stream()
.filter(s -> workCenters.contains(s.getDepartment())
.collect(Collectors.toList());
но в этом случае я делаю это неправильно, потому что не могу получить getDepartment()
из workCenters
. Какое будет правильное решение?