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