Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 8 Lambda-通过另一个集合筛选集合_Java_Lambda_Java 8 - Fatal编程技术网

Java 8 Lambda-通过另一个集合筛选集合

Java 8 Lambda-通过另一个集合筛选集合,java,lambda,java-8,Java,Lambda,Java 8,我有一套用户名 和列出玩家 我想过滤掉那些不在阵容中的球员 我知道如何在Vanilla pre Java 8中实现这一点 List<Player> distinctPlayers = new ArrayList<Player>(); for(Player p : players) { if(!usernames.contains(p.getUsername()) distinctPlayers.add(p); } 这不能编译。“无法解析方法getUserna

我有一套
用户名
列出玩家

我想过滤掉那些不在阵容中的球员

我知道如何在Vanilla pre Java 8中实现这一点

List<Player> distinctPlayers = new ArrayList<Player>();

for(Player p : players) {
    if(!usernames.contains(p.getUsername()) distinctPlayers.add(p);
} 

这不能编译。“无法解析方法getUsername()”

您将lambda表达式放在错误的位置-过滤器的整个参数应为lambda表达式。换句话说,“给定一个玩家
p
,我是否应该过滤它?”


公牛!我知道我错过了一些简单的事情。谢谢#feelsAshamedHi,我使用的是EXACT场景,但它显示了编译错误,在封闭范围中定义的“局部变量”用户名必须是最终的或有效的最终的“@vijayakumar:很可能您正在修改方法中的某个地方的
用户名
。。。在没有看到代码的情况下,很难再多说些什么。也许你应该问一个新问题(在研究了错误信息之后)
players.stream().filter(!usernames.contains(p -> p.getUsername()))
.collect(Collectors.toList());
players.stream().filter(p -> !usernames.contains(p.getUsername()))