用于查找“包含”的 Java 8 lambda 表达式

4 java lambda list java-8 java-stream

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

这是我当前的代码:

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

有没有什么办法可以说locations.contains(user -> user.getLocation())“或 user -> user.getLocation().isPresentIn(locations)”将位置转换为另一个流,然后进行匹配?

这是我当前的代码:

 .filter(locations.stream().filter(loc -> loc.equalsIgnoreCase(s.getLocation())))
Run Code Online (Sandbox Code Playgroud)

这当然不能编译。

ste*_*fen 5

你的意思是这样吗:

.filter(user -> locations.contains(user.getLocation())
Run Code Online (Sandbox Code Playgroud)