gpt4 book ai didi

java - 从流的内部过滤器获取 boolean 值

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:08 26 4
gpt4 key购买 nike

考虑我有以下代码

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());
}

我想做的是我有一张 map ,其值是字符串列表。

这些值将被转换为整数,并且将检查该值是否大于给定值,如在第二个/内部过滤器中。

我可以将它分成小部分,因为我使用了两个过滤器,但是从内部过滤器我无法获得 boolean 值,因此我将获得所需的流,然后使用 flatmat(Collection::stream) 和然后将被转换为集合(以避免重复),因为两个列表都包含一个共同的值,即 4

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

我有一个简单的查询,因为我正在遍历 map 并且该 map 包含列表作为值,在这里我无法从内部 filter

获取 boolean 值

最佳答案

如果我没理解错的话,你需要先把 map 的列表展平,然后收集大于0的唯一值。到 Set .

您可以使用 map.values().stream() 来引导为了得到 map 的值。

Set<Integer> set = map.values().stream()
.flatMap(Collection::stream)
.map(Integer::valueOf)
.filter(num -> num > 0)
.collect(Collectors.toSet());

关于java - 从流的内部过滤器获取 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39503506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com