【发布时间】:2020-07-21 11:05:50
【问题描述】:
如何按一系列可能的值对列表进行分组? 如果我有一个班级 Foo
class Foo{
int value;
}
然后列出 foos List<Foo> 列表
list.stream().collect(Collectors.groupingBy(Foo::getValue));
将我的具有相同价值的 foos 收集到一组中。但我想将一系列值分组到一个组中。例如
values < 5 in group "A"
values > 5 && < 25 in group "B"
values >= 25 in group "C"
或者另一个例子:假设我有一个整数列表:
List<Integer> list = List.of(2,3,4,9,11,17,28,29,32);
list.stream().collect(Collectors.groupingBy(
classifier,
Collectors.toList()));
我试图把类似的东西放到分类器中
i < 5 ? "A": i >= 5 && i < 25 ? "B" : "C";
这会导致编译错误。怎么做?
【问题讨论】:
-
Collectors.groupingBy(i -> i < 5 ? "A" : i < 25 ? "B" : "C")对我来说很好,你能显示编译错误发生在哪里吗? -> 你忘记使用 lambda 了吗? -
@Lino-Votedon'tsay 谢谢我的错误。我忘记输入
i ->。非常感谢。
标签: java java-stream grouping