java8 分组

Collectors.groupingBy()在collect中调用,返回值是Map,参数是返回map的key,value是流中的某一个元素

1.单子段分组

Map<String, List<BwXyBjtxyJfmx>> mapjfmx = jfmxlist.stream()
				.collect(Collectors.groupingBy(BwXyBjtxyJfmx::getXyid));



对应的json数据这样,每一个学员id的key,对应一个缴费明细的对象

{xyid0:BwXyBjtxyJfmx0,xyid1:BwXyBjtxyJfmx1}



2.多字段分组

Map<Integer,Map<String,List<DocLotDetail>>> amp  = docLotDetailLists.parallelStream()
					.collect(Collectors.groupingBy(
							DocLotDetail::getGroupOrder,Collectors.groupingBy(
									DocLotDetail::getBaseValueName)));


对应的数据应该是这样的,数据格式大概是这样的,获取时,先按groupOrder获得一个map,在从map里baseValueName或的,指定groupOrder中的指定baseValueName的一组对象

{GroupOrder0:{BaseValueName0:[DocLotDetail0,DocLotDetail1]}  , GroupOrder1:{BaseValueName0:[DocLotDetail0,DocLotDetail1],BaseValueName1:[DocLotDetail0,DocLotDetail1]} }



猜你喜欢

转载自blog.csdn.net/qq_31683775/article/details/79064646