例如{0,1,2,3,4,5,6,7,8,9}这个集合,条件是 是否大于 6,分割成两个集合然后放在 map 里。例如:Map<Boolean,List<Integer>>,true 的就是大于 6 的,false 的就是小于 6 的。我会用两次 filter 来实现,但是不知道怎么用一行 lambda 来实现。请教各位,不胜感激。
1
Kyle18Tang Jul 3, 2019 via Android
groupby
|
2
codeismylife OP @Kyle18Tang groupby 能按照条件分组吗?具体怎么写呢?
|
3
npe Jul 3, 2019
filter 就可以了,groupBy 只是分组
|
4
codeismylife OP @npe 可是 filter 只能筛出一部分来,我想用一行 lambda 代码返回一个这样的 Map<Boolean,List<Integer>>。能请教一下如何写吗?
|
5
terry0314 Jul 3, 2019 list.stream().collect(Collectors.groupingBy(n -> n > 6, Collectors.toList()))
|
6
codeismylife OP @terry0314 你这个可以。谢谢。
|
7
Kyle18Tang Jul 3, 2019
@codeismylife #2 5 楼正解。
|
8
linuxsteam Jul 5, 2019 via Android
@codeismylife 这个会返回 true flase 吗 不是还需要手动放到 map ?
|