首页 Java Java 将单个集合(Set<Integer>)拆分成两个集合的几种方法

Java 将单个集合(Set<Integer>)拆分成两个集合的几种方法

示例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联系,我们会及时反馈并处理完毕。