下面是已经从数据库 Sample 表取出得数据
uid date hour clicks views
1 02-10 18 1 2
1 02-10 19 2 2
1 02-19 08 3 2
2 02-11 18 10 2
2 02-11 19 20 2
现在想要 [ group by ] ( uid, date ), 然后 clicks 求和,views 求和,hour 这一列不要了。
uid date clicks views
1 02-10 3 4
1 02-19 3 2
2 02-11 30 4
另外,如果一个 object 还有其他的字段,groupby 的时候不一定是求和,可能是其他运算。
晚上搜了一大堆都是简单的一个字段的 groupBy,像下面一样,且都是返回某个属性值 Long,
Map<String, Long> countMap = samples.stream()
.collect(
Collectors.groupingBy(o -> o.getUid(),
Collectors.summingLong(Sample::getViews)));
其实我想得到对象(比如 sample 对象),求教
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.