【发布时间】:2014-11-27 23:59:14
【问题描述】:
我有一个Set<String> usernames
和List<Player> players
我想过滤掉那些不在系列中的玩家。
我知道如何在 Java 8 之前的 Vanilla 中做到这一点
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()”
【问题讨论】: