下午一个朋友要求帮忙写个demo,大意就是 将List> 根据2列分组然后求平均值,然后倒序排序 遍历的故事
直接上代码了
import java.util.*;
import java.util.stream.Collectors;
public class Result {
/***
* 题 目:将学生成绩按班级计算每一门课的平均分。
* 入参:
* 参见studentScoreList
* 需求:
* 1、得到班级课程平均分的一个list,并打印出来。包含字段:班级名称、课程、平均分。
* 2、按平均分降序排列。
*/
public static void main(String[] args) {
List> studentScoreList = getStudentScores();
List> result = new ArrayList<>();
Map>> glist = studentScoreList.stream().collect(Collectors.groupingBy(e -> e.get("班级").toString() + "#" + e.get("课程名称").toString()));
glist.forEach((k, slist) -> {
Map nmap = new HashMap<>();
nmap.put("班级", slist.get(0).get("班级"));
nmap