示例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); }