У меня есть Set<String> usernames
и List<Player> players
Я хотел бы отфильтровать тех игроков, которые не находятся в Set.
Я знаю, как это сделать в Vanilla pre Java 8
List<Player> distinctPlayers = new ArrayList<Player>();
for(Player p : players) {
if(!usernames.contains(p.getUsername()) distinctPlayers.add(p);
}
Я пытаюсь написать этот простой код с помощью выражения Lambda, но я изо всех сил стараюсь, чтобы usernames.contains()
работал в фильтре
players.stream().filter(!usernames.contains(p -> p.getUsername()))
.collect(Collectors.toList());
Это не компилируется. "Невозможно восстановить метод getUsername()"