Java 将单个集合(Set<Integer>)拆分成两个集合的几种方法
时间:2022-08-28
示例Set<Integer>集合
Set<Integer> mySet = [ 1,2,3,4,5,6,7,8,9]
1、使用stream().filter()
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())
2、使用collect()和partitioningBy()
Map< Boolean, Set<Integer> > map = mySet.stream().collect( Collectors.partitioningBy( y -> y % 2 == 0, Collectors.toSet() ) ); Set<Integer> odds = map.get(Boolean.TRUE); Set<Integer> evens = map.get(Boolean.FALSE);
3、使用for循环实现
Set<Integer> setEven = new HashSet<>(); Set<Integer> setOdd = new HashSet<>(); for (Integer val : mySet) { if (val % 2 == 0) setEven.add(val); else setOdd.add(val); } //或者 for(Integer val : mySet) { ((val % 2 == 0) ? setEven : setOdd).add(val); }
特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。