考虑我有以下代码
public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<>();
map.put("a", Arrays.asList("1", "2", "3", "4"));
map.put("b", Arrays.asList("6", "7", "4", "5"));
map.entrySet().stream().filter(t -> t.getValue()
.stream().filter(v -> Integer.valueOf(v) > 0)
.**WhatShouldIputThereToMakeitBolean**)
.collect(Collectors.toSet());
}
我想做的是我有一个映射,它的值是字符串列表。
这些值将被转换成整数,并将被检查,如果该值大于给定的值,如第二/内过滤器。
我可以把它分成几个小部分,因为我使用了两个过滤器,但从内部过滤器我无法得到布尔值,所以我将得到所需的流,然后使用flatmat(Collection::stream)合并,然后将其转换为set(以避免重复),因为这两个列表都包含一个公共值,即4
我需要的输出必须是整数和单集的形式,将像[1,2,3,4,5,6]一样合并,这里的值4是重复的,如果值小于提供的值,则必须限制结果集的值
我有一个简单的查询,因为我正在遍历映射,而映射包含列表作为值,在这里,我无法从内部过滤器中获取布尔值
这可能会对您有所帮助,谓词:http://howtodoinjava.com/java-8/how-to-use-predicate-in-java-8/..谓词是一个语句,根据其变量的值可能是真或假。
如果我理解正确,您需要先将地图列表展平,然后将大于0
的唯一值收集到集合
。
你可以使用map进行引导。值()。stream()
以便只获取映射的值。
Set<Integer> set = map.values().stream()
.flatMap(Collection::stream)
.map(Integer::valueOf)
.filter(num -> num > 0)
.collect(Collectors.toSet());
问题内容: 根据http://www.elastic.co/guide/zh-cn/elasticsearch/guide/master/combining- filters.html 上的elasticsearch文档,布尔过滤器可以是以下内容: 在含义上,它等效于以下逻辑运算: 这样对吗? 谢谢! 问题答案: 正如Andrei在评论中指出的,这是对 过滤器 的正确理解: 可以翻译成 可以翻译成
我试图理解Java的流API的内部调用。 我有下面的代码,它有两个过滤器(中间)操作和一个终端操作。 我看到,对于每个中间操作,都会返回一个新流,并使用重写的方法。一旦它命中terminal方法,流就执行。如果有两个操作,我看到正在运行两次,而不是一次。 我想了解一个流遍历如何能够调用过滤器两次。 粘贴下面的IntPipeline代码,在Stream中为filter方法命中该代码。
我从事elasticsearch,我尝试混合两个工作查询。第一个是“and filter”,第二个是“bool filter”,但我失败了。 我的查询是从用户交互界面动态生成的。 “和过滤器”: 我需要“和过滤器”来查询数据,例如,字段必须等于“非洲”或“亚洲”或为空。这是一个工作查询的示例: 此查询工作正常,结果如下: 现在我需要用字段“D\u TYPESTATUS”来限制结果数据,该字段必须与
我正在使用CodeIgniter 3和PostgreSQL 9.4数据库。如果数据库中相应列的数据类型是布尔值,有没有办法在PHP中获取布尔值? 我使用CodeIgniters查询生成器类,如下所示: 用户表中的所有布尔值都由字符串('t'和'f')表示。
问题内容: 使用嵌套对象的布尔运算符时遇到一些麻烦。这是我的映射: 我想获取恰好包含两个指定ip甚至更多的文档。 假设我的文档具有以下ips: 我想通过使用此过滤器进行搜索来仅检索DOC 1: 问题在于,同时检索了DOC 1和DOC2。 问题答案: 你可以使用你的条件过滤器是这样的: 这是我用来测试的一些代码: http://sense.qbox.io/gist/d6b5f4e4c0d2977a0
我试图编写一个由2个部分组成的弹性搜索布尔查询。我想要“必须”的两个条件和“应该”的两个条件。问题是我只想得到“应该”的分数。我尝试了“过滤器”,但没有成功。 你有什么想法吗?