Q.1)你好,java流的groupingby可以使自己的数组变数吗?
这是实体
public class Test {
private int id;
private int itemId;
private int[] itemIds;
private boolean filter;
}
这是测试列表样本
{
test(id=1, itemId=1)
test(id=1, itemId=2)
test(id=1, itemId=3)
test(id=2, itemId=5)
test(id=2, itemId=11)
}
我想按 test.id 分组,例如
{
test(id=1, itemIds=[1,2,3])
test(id=2, itemIds=[5,11])
}
我该怎么办?
tests.stream().collect(Collectors.groupingBy(Test::getId), ?, ?);
Q.2) 我如何合并下面的两个流代码?
tests.stream().filter(Test::isFilter).anyMatch(t -> {throw new Exception;});
tests.stream().collect(Collectors.groupingBy(Test::getId, ?, ?); // Q1 result
对这个..?
tests.stream().filter(Test::isFilter).anyMatch(t -> {throw new Exception;}).collect(Collectors.groupingBy(Test::getId, ?, ?);
Q3) Q1、Q2 的流代码比 java 'for' 语法性能更好?
先感谢您。:)