我有一个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);
}
Run Code Online (Sandbox Code Playgroud)
我试图用Lambda表达式编写这个简单的代码,但我很难usernames.contains()在过滤器中工作
players.stream().filter(!usernames.contains(p -> p.getUsername()))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
这不编译."无法恢复方法getUsername()"