For example, there are two classes:
class Team {
List<Player> players; //with getter & setter
}
class Player{
String name; //with getter & setter
int number; //with getter & setter
}
So, if there are three teams:
Red Team : Adam(4), Tom(5), Peter(11)
Blue Team : Ken(5), Justin(11)
Black Team : Kim(4), Jackal(3)
I want to use lambda to get teams which has a member with jersey number X. For example:
filter with 4 will get Red, Black
filter with 11 will get Red and Blue.
I know how to filter only at player level, like
players.stream().filter(p->p.number.equal(X))
or flatmap to get a list of players
teams.stream().flatmap(t->t.getPlayers())
but how to I mix these lambda to get teams with a property filter on player?
The solution may look like this: