【问题标题】:Java 8 lambda expression for finding "contains"用于查找“包含”的 Java 8 lambda 表达式
【发布时间】:2017-05-10 11:20:59
【问题描述】:

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

这是我当前的代码:

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

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

这是我当前的代码:

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

当然不能编译。

【问题讨论】:

  • 您能否提供一些代码的最小工作示例?
  • 如果用户的位置存在于提供的位置列表中,则该用户是有效的:所以,boolean userIsValid = locations.contains(user.getLocation())?那是你要的吗?如果没有,请提供您要实现的方法,以及它的参数、返回类型和 javadoc,因为它很不清楚。

标签: java list lambda java-8 java-stream


【解决方案1】:

你是这个意思吗:

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

【讨论】:

  • 这是区分大小写的。他正在做的是区分大小写的检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 2016-10-01
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多