用于查找 "contains"的 Java 8 lambda 表达式

标签 java list lambda java-8 java-stream

我有一个方法需要 List<String> locations作为参数。我正在根据特定条件以相同的方法填充用户列表。现在我想要的是,用户应该出现在这个位置。简而言之,如果用户的位置出现在所提供的位置列表中,则该用户是有效的。地点。

这是我当前的代码:

primaryList.stream()
        .filter(some_pattern_matching)[.MATCH THE LOCATION HERE]
        .map(user -> user.getNames())
        .collect(toList())

有没有办法说locations.contains(user -> user.getLocation())或者 user -> user.getLocation().isPresentIn(locations)或者将位置转换为一个流然后进行匹配?

这是我当前的代码:

 .filter(locations.stream().filter(loc -> loc.equalsIgnoreCase(s.getLocation())))

当然不能编译。

最佳答案

你的意思是:

.filter(user -> locations.contains(user.getLocation())

关于用于查找 "contains"的 Java 8 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43890986/

相关文章:

ruby - 如何从 Ruby 中的子类覆盖 lambda 变量?

java - NoClassDefFoundError : android. support.v4.util.ArrayMap

java - 想要在startActivity之前要求用户确认他的信息是否正确,android

java - 使用 JDBC 返回 MYSQL 中最后一行的整数

python - 列表理解与 lambda + 过滤器

c++11 从传递给构造函数的 lambda 访问 "this"

c# - 为什么这个 lambda 函数需要括号?

java - 如何在多个线程之间安全地共享 ArrayDeque?

c# - 当反射类型本身是 List 时实例化通用 c# List

java - 从 Java 中的列表对象获取特定参数