首页 > 编程语言 >Java使用Stream函数对集合进行分组

Java使用Stream函数对集合进行分组

时间:2023-07-18 18:35:22浏览次数:35  
标签:Map Java HashMap Stream list book 分组 put new

 1         List<Map<String,String>> list = new ArrayList<>();
 2         Map<String,String> map1 = new HashMap<>();
 3         map1.put("name", "卢俊义");
 4         map1.put("book", "水浒传");
 5         list.add(map1);
 6         Map<String,String> map2 = new HashMap<>();
 7         map2.put("name", "镇元子");
 8         map2.put("book", "西游记");
 9         list.add(map2);
10         Map<String,String> map3 = new HashMap<>();
11         map3.put("name", "林黛玉");
12         map3.put("book", "红楼梦");
13         list.add(map3);
14         Map<String,String> map4 = new HashMap<>();
15         map4.put("name", "黑旋风");
16         map4.put("book", "水浒传");
17         list.add(map4);
18         Map<String,String> map5 = new HashMap<>();
19         map5.put("name", "太上老君");
20         map5.put("book", "西游记");
21         list.add(map5);
22         Map<String, List<Map<String, String>>> books = list.stream().collect(Collectors.groupingBy(i -> i.get("book")));
23         books.forEach((k,v) -> {
24             System.out.println(k);
25             System.out.println(v.toString());
26         });

 

标签:Map,Java,HashMap,Stream,list,book,分组,put,new
From: https://www.cnblogs.com/DSH-/p/17563817.html

相关文章

  • java类型转换
    java类型转换-由于Java是强类型语言,所以在运算时,有时需要类型转换-低------------------------------------高-byte,short,char->int->long->float(小数的优先级大于整数)->double-运算中,不同类型的数据先转化为同一类型,然后进行运算-强制类型转换......
  • java后台启动jar包的一些命令
    启动方式一在jar包所在文件夹打开命令窗口,输入以下命令java-jarapp.jar特点:当前ssh窗口被锁定,可按CTRL+C打断程序运行,或直接关闭窗口,程序退出启动方式二java-jarapp.jar&&代表在后台运行。特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。启动方式三:no......
  • Java根据原始URL获取网络重定向后的URL
    方法1:/***获取重定向地址*@parampath原地址*@return*@throwsException*/privateStringgetRedirectUrl(Stringpath)throwsException{HttpURLConnectionconn=(HttpURLConnection)newURL(path)......
  • Java基本语法
    Java基本语法注释1单行注释2多行注释3文档注释//输出一个Helloworld单行注释/**多行注释**//***文档注释*@DescriptionHelloWorld*@AuthorDunCan*/标识符-Java所有的组成部分都需要名字。###标识符注意点1所有......
  • 设计模式-外观模式在Java中的使用示例
    场景外观模式外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。示例自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、......
  • 深入解析 C++ 中的 ostringstream、istringstream 和 stringstream 用法
    引言:在C++中,ostringstream、istringstream和stringstream是三个非常有用的字符串流类,它们允许我们以流的方式处理字符串数据。本文将深入探讨这三个类的用法和特性,帮助读者更好地理解和应用字符串流操作。1.ostringstream(输出字符串流)ostringstream是C++中用于输出字......
  • java定时定时任务quartz
    Quartz是一个Java版开源定时调度器,功能强悍,使用方便。一、核心概念1.Job表示一个工作,要执行的具体内容,此接口只有一个方法voidexecute(JobExecutionContextcontext)2.JobDetailJobDetail表示一个具体的可以执行的调度程序,Job是这个可以执行程序所要执行的内容内容,JobDetai......
  • Java 中 Json 扁平化与去扁平化处理
    引入依赖<!--依赖--><dependency><groupId>com.github.wnameless.json</groupId><artifactId>json-flattener</artifactId><version>0.16.4</version></dependency>demopublicstaticvoid......
  • Java程序运行机制
    Java程序运行机制1编译型complie-就是一次性把活干完,量大,但是后续有修改需要重新干,比如C/C++,2解释型-用一点,解释一点,性能稍微损失javaScriptpython3程序运行机制4Java偏向解释性语言,不过具有两种类型的特性,先编译,后解释......
  • 在不改变语言的前提下如何推进Java的不断演进
    JamesGosling在“TheFeelofJava”中说到:Java是一种蓝领语言,它并非博士的论文素材而是用于完成工作的语言。各式各样的程序员都非常熟悉Java,因为在设计Java之初我就坚持这样一种观点:选择久经考验的东西而非仅仅是听起来很美。Java所获得的巨大成功证明了这种设计方式是正确的,......