作者:lailai | 来源:互联网 | 2023-09-14 22:27
我已经从获得了一个Log的listpublicclassLog(){privateintid;privateStringuser;privateStringmo
我已经从获得了一个Log的list
public class Log(){
private int id;
private String user;
private String mod;
private Timestamp logtime;
.......getter and setter
}
List loglist = logdao.getLogList();
我想对Log的 user和mod字段进行进行分组统计,我用
loglist.Stream().Collect(
Collectors.groupingBy(Log::getUser.........
)
这样对user,mod分别进行分组是可以的,但是我要对user、mod两个属性进行分组就出问题了,语法错误
因为不能通过SQL从数据库里面进行分组,必须在这里做的,因为已经用到Java8了,我希望用Stream来实现。
那么用Stream如何进行两个属性的分组呢?
4 个解决方案
楼主可以看看这个http://www.importnew.com/14841.html
我去学习下
有stream的介绍,但是没有groupingby多个字段的例子,也没有思路啊
搜遍网上
Stream都是入门文章,感觉缺乏点什么,不知道有没有好点的JavaBlog,或者牛人聚集区
Stream是个好东西,可以没有Linq那么直接,很多都是兜兜转转,只能照抄,难以深入。
Map>> amp = docLotDetailLists.parallelStream().collect(Collectors.groupingBy(DocLotDetail::getGroupOrder,Collectors.groupingBy(DocLotDetail::getBaseValueName)));
amp.forEach((key,value)->{
System.out.println(key);
value.forEach((key2,value2)->{
System.out.println(key2);
});
});