这篇文章给大家介绍如何在java8中实现流分组功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>前言强>
最近,项目开发时遇到一个问题。根据业务要求,前端给后端上送的参数是一个列表(如列表列表),因此,后端也用了一个列表来接收。然而,等后端拿到数据后,我发现我需要对相同classId的数据进行统一处理。于是,我找到前端妹妹讨论,看她能不能帮忙把相同classId的数据封装成列表传给我。我好将接收参数修改成以下格式(列表列表):
class Dto { String 才能;classId; List<才能;Student>,列表; }
这时,前端妹妹评估了下改动程度,眼泪汪汪地看着我
我瞬间明白了,我表现的机会到了!
我说道:这样吧!前端不动,后端来处理!
后端不能说不行!
仔细看了下数据,运用java 8流分组功能轻松解决。
public static void testStreamGroup () { List<才能;Student>, stuList =, new ArrayList(); Student 才能;stu1 =, new 学生(“10001”,,“孙权“,,,1000101,,,16日,& # 39;男& # 39;); Student 才能;stu2 =, new 学生(“10001”,,“曹操,,,,1000102,,,16日,& # 39;男& # 39;); Student 才能;stu3 =, new 学生(“10002”,,“刘备“,,,1000201,,,16日,& # 39;男& # 39;); Student 才能;stu4 =, new 学生(“10002”,,“大乔”,,“1000202“,,16日,& # 39;女& # 39;); Student 才能;stu5 =, new 学生(“10002”,,“小乔“,,,1000203,,,16日,& # 39;女& # 39;); Student 才能;stu6 =, new 学生(“10003”,,“诸葛亮“,,,1000301,,,16日,& # 39;男& # 39;); stuList.add才能(stu1); stuList.add才能(stu2); stuList.add才能(stu3); stuList.add才能(stu4); stuList.add才能(stu5); stuList.add才能(stu6); Map<才能,字符串,List 祝辞,collect =, stuList.stream () .collect (Collectors.groupingBy(学生::getClassId)); 的才能(Map.Entry<字符串,List 祝辞,stuMap: collect.entrySet ()) { ,,,,String classId =, stuMap.getKey (); ,,,,List , studentList =, stuMap.getValue (); ,,,,System.out.println (“classId:“+ classId +“, studentList:“+ studentList.toString ()); ,,} }
classId: 10002年,studentList:[学生(classId=10002, name=刘备,studentId=1000201=16岁性=男),学生(classId=10002, name=大乔,studentId=1000202=16岁性=女),学生(classId=10002, name=小乔,studentId=1000203=16岁性=女]]
引用>
classId: 10001年,studentList:[学生(classId=10001, name=孙权,studentId=1000101=16岁性=男),学生(classId=10001, name=曹操,studentId=1000102=16岁性=男]]
classId: 10003年,studentList:[学生(classId=10003, name=诸葛亮,studentId=1000301=16岁性=男]]
关于如何在java8中实现流分组功能就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。
如何在java8中实现流分组功能