gpt4 book ai didi

java - 将一个集合划分为 2 个不同集合的最佳方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 20:52:57 28 4
gpt4 key购买 nike

我有一组数字:

 Set<Integer> mySet = [ 1,2,3,4,5,6,7,8,9]

我想把它分成两组赔率和偶数。

我的方法是使用两次过滤器:

Set<Integer> set1 = mySet.stream().filter(y -> y % 2 == 0).collect(Collectors.toSet())
Set<Integer> set2 =mySet.stream().filter(y -> y % 2 != 0).collect(Collectors.toSet())

我不喜欢这个解决方案,因为我把整个系列都检查了两次。

有什么更聪明的方法吗?

最佳答案

Map<Boolean, List<Integer>> partitioned = 
set.stream().collect(Collectors.partitioningBy(x -> x%2 == 0));

partitioned.get(true)中的元素是偶数; partitioned.get(false) 中的元素是奇数。

与使用 groupingBy 不同,保证 truefalse 列表都将出现在 map 中,即使它们为空. (Java 8 中没有记录,但确实如此;Java 9 的文档现在明确说明了这一点。

关于java - 将一个集合划分为 2 个不同集合的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48648232/

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