如何在java8中实现流分组功能

  介绍

这篇文章给大家介绍如何在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中实现流分组功能