gpt4 book ai didi

java - 使用 Stream API 打印集合中的唯一值

转载 作者:行者123 更新时间:2023-12-02 01:01:13 25 4
gpt4 key购买 nike

我只需要从集合中获取唯一值(集合中没有任何重复项的值)。例如,这段代码:

ArrayList<Integer> g =  new ArrayList<>(Arrays.asList(1,1,2,2,3,4,5,5,5,6,6));
System.out.println(Arrays.toString(g.stream().mapToInt(Integer::intValue).distinct().toArray()));

给了我这个结果:

[1, 2, 3, 4, 5, 6]

但是我想要结果:

[3, 4]

有什么方法可以使用 Stream API 来做到这一点吗?

最佳答案

List<Integer> source = Arrays.asList(1, 1, 2, 2, 3, 4, 5, 5, 5, 6, 6);
List<Integer> processed = source.stream()
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
.entrySet().stream()
.filter(e -> e.getValue() == 1)
.map(Map.Entry::getKey)
.collect(Collectors.toList());
System.out.println(processed);

结果:

[3, 4]

关于java - 使用 Stream API 打印集合中的唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60605971/

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