当前位置: 首页 > wzjs >正文

网站的性能特点个人简历制作

网站的性能特点,个人简历制作,wordpress文章代码框,临泉网站建设Java中如何使用lambda表达式分类groupby Java中如何使用lambda表达式分类groupby分类问题场景传统手写方式lambda使用groupBy()方法一行结束!!!完整代码 Java中如何使用lambda表达式分类groupby 分类问题场景 比如一群学生根据性别和年龄排…

Java中如何使用lambda表达式分类groupby

  • Java中如何使用lambda表达式分类groupby
      • 分类问题场景
      • 传统手写方式
      • lambda使用groupBy()方法一行结束!!!
      • 完整代码

Java中如何使用lambda表达式分类groupby

分类问题场景

比如一群学生根据性别和年龄排队,Student类有性别gender、年龄age属性,将同性别,同年龄的学生归为一类

genderagename队伍
man12Li Hua队伍1
man12Zhang San队伍1
man13Li Si队伍2
woman12Xiao Hua队伍3
woman12Xiao Fang队伍3

传统手写方式

使用for循环遍历

public static void main(String[] args) {// 读取学生信息List<Student> students = generateStudents();// 排队Map<String, Map<Integer, List<Student>>> queue = queueUp(students);// 打印队伍结果printQueue(queue);
}private static Map<String, Map<Integer, List<Student>>> queueUp(List<Student> students) {// 队伍结果Map<String, Map<Integer, List<Student>>> queue = new HashMap<>();// 传统排队方式for (Student student : students) {if (!queue.containsKey(student.getGender())) {queue.put(student.getGender(), new HashMap<>());}Map<Integer, List<Student>> ageMap = queue.get(student.getGender());if (!ageMap.containsKey(student.getAge())) {List<Student> list = new ArrayList<>();list.add(student);ageMap.put(student.getAge(), list);} else {ageMap.get(student.getAge()).add(student);}}return queue;
}

输出结果

|gender|age|name      |
|------|---|----------|
|woman |12 |Xiao Hua  |
|woman |12 |Xiao Fang |
|man   |12 |Li Hua    |
|man   |12 |Zhang San |
|man   |13 |Li Si     |

lambda使用groupBy()方法一行结束!!!

private static Map<String, Map<Integer, List<Student>>> queueUpWithLambda(List<Student> students) {return students.stream().collect(Collectors.groupingBy(Student::getGender, Collectors.groupingBy(Student::getAge)));
}

完整代码

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;public class DemoForGroupBy {@Getter@Setter@NoArgsConstructor@AllArgsConstructorpublic static class Student {private String gender;private int age;private String name;}public static void main(String[] args) {// 读取学生信息List<Student> students = generateStudents();// 排队Map<String, Map<Integer, List<Student>>> queue = queueUp(students);// 打印队伍结果printQueue(queue);queue = queueUpWithLambda(students);printQueue(queue);}private static Map<String, Map<Integer, List<Student>>> queueUp(List<Student> students) {// 队伍结果Map<String, Map<Integer, List<Student>>> queue = new HashMap<>();// 传统排队方式for (Student student : students) {if (!queue.containsKey(student.getGender())) {queue.put(student.getGender(), new HashMap<>());}Map<Integer, List<Student>> ageMap = queue.get(student.getGender());if (!ageMap.containsKey(student.getAge())) {List<Student> list = new ArrayList<>();list.add(student);ageMap.put(student.getAge(), list);} else {ageMap.get(student.getAge()).add(student);}}return queue;}private static Map<String, Map<Integer, List<Student>>> queueUpWithLambda(List<Student> students) {return students.stream().collect(Collectors.groupingBy(Student::getGender, Collectors.groupingBy(Student::getAge)));}private static List<Student> generateStudents() {List<Student> students = new ArrayList<>();String[] genderArray = new String[]{"man", "man", "man", "woman", "woman"};int[] ageArray = new int[]{12, 12, 13, 12, 12};String[] nameArray = new String[]{"Li Hua", "Zhang San", "Li Si", "Xiao Hua", "Xiao Fang"};for (int i = 0; i < nameArray.length; i++) {Student student = new Student(genderArray[i], ageArray[i], nameArray[i]);students.add(student);}return students;}private static void printQueue(Map<String, Map<Integer, List<Student>>> queue) {System.out.printf("|%-6s|%-3s|%-10s|%n", "gender", "age", "name");System.out.printf("|%-6s|%-3s|%-10s|%n", "------", "---", "----------");for (Map.Entry<String, Map<Integer, List<Student>>> entry : queue.entrySet()) {for (Map.Entry<Integer, List<Student>> e : entry.getValue().entrySet()) {for (Student student : e.getValue()) {System.out.printf("|%-6s|%-3d|%-10s|%n", student.getGender(), student.getAge(), student.getName());}}}}}
http://www.dtcms.com/wzjs/676876.html

相关文章:

  • dede5.7微电影网站模板图书购物网站开发总结
  • 吴忠住房和城乡建设网站百度医疗网站建设
  • 领优惠券的网站是怎么做的百度云做.net网站
  • 西乡建网站wordpress背景代码
  • 建立网站后怎样收费ssh蒙语网站开发
  • 学生网站建设可行性分析wordpress 微信 登录
  • 广州航海学院门户网站北京旅游网站建设
  • 外贸做网站公司百度网站建设工资
  • 网站备案情况查询旅行社网站建设
  • 做定制网站网推拉新怎么做
  • 怎么做网站搜索引擎自己做的网站网页打开速度慢
  • 网站建设视频教程 百度云新网站建设怎么样
  • seo网站建设培训有名的网站
  • 如何做网站内容架构分析网站服务器怎么看是哪个厂家的
  • 网站建设系统哪个好wordpress添加文字广告框架
  • 国家外汇管理局网站怎么做报告群晖wordpress图片
  • 网站中弹出广告怎么做建设个网站需要多少钱
  • 企业网站规划要求北京大兴网站建设公司咨询
  • 科网站建设网络行业做什么挣钱
  • 环保网站建设的主题tiktok国际版网页入口
  • 国外网站加速神器做一个网站美工多少钱
  • 樟木头的建网站公司渠县网站建设
  • 海商网做网站价格软件开发报价
  • 门户类网站前台wordpress添加媒体在角落
  • 中信建设有限责任公司ipo长沙seo外包行者seo07
  • 目前专业做水果的网站备案平台新增网站
  • 莱州网站建设青岛华夏商务网wordpress教程登陆
  • 网站文件夹权限设置通信管理局网站备案
  • 临沭县哪里有建网站的新闻发稿推广
  • 公司网站开发的流程河间网站制作