我想排序seq1升序和seq2降序所以我这样做:
list = list.stream().sorted(comparing(AClass::getSeq1).thenComparing(
AClass::getSeq2).reversed()).collect(toList());
Run Code Online (Sandbox Code Playgroud)
但结果出来了,因为seq1和seq2都按降序排序.
我可以这样做以使seq1升序和seq2降序:
sorted(comparing(AClass::getSeq1)
.reversed().thenComparing(AClass::getSeq2).reversed()
Run Code Online (Sandbox Code Playgroud)
这是真正的正确方法吗?
使用SQL我可以写这个来汇总数据:
SELECT sum(f1), sum(f2), f3, f4 FROM TABLEX GROUP BY f3, f4
Run Code Online (Sandbox Code Playgroud)
这将返回一个列表,每行包含4个值:sum1,sum2,v3,v4
例如:这是表中的内容:
1, 2, a, b
1, 2, a, b
2, 2, c, d
2, 2, c, d
3, 4, c, d
Run Code Online (Sandbox Code Playgroud)
结果将是:
2, 4, a, b
7, 8, c, d
Run Code Online (Sandbox Code Playgroud)
现在假设我没有数据库表,而是在具有变量f1,f2,f3,f4的Java对象列表中有数据.Java流API中是否有一个函数可以根据f3,f4汇总这个列表?