Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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 从流的内部筛选器获取布尔值_Java_Java 8 - Fatal编程技术网

Java 从流的内部筛选器获取布尔值

Java 从流的内部筛选器获取布尔值,java,java-8,Java,Java 8,假设我有以下代码 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().stre

假设我有以下代码

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());
}
publicstaticvoidmain(字符串[]args){
Map Map=newhashmap();
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)
.*KEITBOLEAN应添加哪些内容**)
.collect(收集器.toSet());
}
我想做的是我有一个映射,它的值是字符串列表

这些值将被转换为整数,如果该值大于给定值(如第二个/内部过滤器中的值),则将进行检查

我可以将它分解成几个小部分,因为我使用了两个过滤器,但从内部过滤器中我无法获得布尔值,因此我将获得所需的流,然后使用flatmat(Collection::stream)将其合并,然后将其转换为set(以避免重复),因为这两个列表都包含一个公共值,即4

我需要的输出必须是整数和单集的形式,将像[1,2,3,4,5,6]一样合并,这里的值4是重复的,如果值小于提供的值,则必须限制结果集的值


我有一个简单的查询,因为我正在遍历映射,该映射包含列表作为值,在这里我无法从内部
过滤器中获取布尔值

如果我理解正确,您需要首先展平映射的列表,然后将大于
0
的唯一值收集到
集合中

您可以使用
map.values().stream()
进行引导,以便只获取映射的值

Set<Integer> set = map.values().stream()
    .flatMap(Collection::stream)
    .map(Integer::valueOf)
    .filter(num -> num > 0)
    .collect(Collectors.toSet());
Set Set=map.values().stream()
.flatMap(集合::流)
.map(整数::valueOf)
.filter(num->num>0)
.collect(收集器.toSet());

这可能对您有所帮助,谓词:。。
谓词是一个语句,它可能是真的,也可能是假的,这取决于它的变量的值

你想在片场里放什么?我不知道你在问什么。你能澄清一下吗?@4castle我正在尝试合并这些值,它们是什么值?如何合并?你能编辑这个问题来显示你想要的结果吗?嗯,这帮不了什么忙。你能告诉我这个集合最后应该存储什么值吗?感谢它的工作,没想到我最终会变得那么容易。顺便说一句:)@n00b我刚刚意识到你想要的输出是用
整数来表示的。我更新了。谢谢,这一部分很简单,而不是主要问题:)