У меня есть три объекта:
Человек. java:
public class Person
{
private String name;
private List<Hobby> hobbyList = new ArrayList<>();
...
}
Хобби. java:
public class Hobby
{
private String name;
private Person person;
private Type type;
...
}
Тип. java:
public class Type
{
private String name;
private List<Hobby> hobbyList = new ArrayList<>();
...
}
Между человеком и хобби есть отношение 1: m и между типом и Хобби - это отношение 1: m.
Теперь моя проблема в том, что я хочу отфильтровать список людей, используя лямбда-выражения. В списке должны быть только те, у кого есть хобби с указанным типом c.
Мне нужно перебрать людей, чтобы получить индивидуальный список хобби и проверить, есть ли у хобби определенный тип c.
Без лямбда-выражений я бы Отфильтруйте список следующим образом:
List<Person> filteredList = new LinkedList<>();
for (Person p : persons)
{
for (Hobby h : p.getHobbyList())
{
if(h.getType.getName.equals("Ball"))
{
if(!filteredList.contains(p))
{
filteredList.add(p);
}
}
}
}