`
zweichxu
  • 浏览: 132042 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java8中利用stream api将list转成map

阅读更多
Region{
    string: code;
    string: label;
    string: parentCode;
    //set/get 
}
List<Region> cityList= getRegionList();

//转成Map<regionCode, Region>
Map<String, Region> map = cityList.stream().collect(Collectors.toMap(Region::getCode, item->item));
 
或者
Map<String, Region> map = cityList.stream().collect(Collectors.toMap(Region::getCode, Function.identity()));
 
上面两个转换在code重复时会报错,改成:
Map<String, Region> map = cityList.stream().collect(Collectors.toMap(Region::getCode, Function.identity(), (k1, k2)->k2));
 
或者转成指定实现类的map:
Map<String, Region> map = cityList.stream().collect(Collectors.toMap(Region::getCode, Function.identity(), (k1, k2)->k2, LinkedHashMap::new));
 
//分组:转成Map<parentCode, List<Region>>
Map<String, List<Region>> map2 = cityList.stream().collect(Collectors.groupingBy(Region::getParentCode));
 
//分组:转成Map<parentCode, List<regionCode>>
Map<String, List<String>> map3 = cityList.stream().collect(Collectors.groupingBy(Region::getParentCode, Collectors.mapping(Region::getCode, Collectors.toList())));
 
//分组:计算每个parentCode对应的集合元素个数:Map<parentCode, Long>
Map<String, Long> map3 = cityList.stream().collect(Collectors.groupingBy(Region::getParentCode, Collectors.counting()));
 
 
分享到:
评论

相关推荐

    05.第五节-使用stream将list转Map集合.mp4

    Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以...

    java8stream源码-Java8:Java8中的一些例子

    Java8中的一些例子 此存储库包含一些用于检查 Java 8 功能的 Java 应用程序示例 例子.java 使用流从对象列表创建 Map 和 Set 基于POJO创建json AccountParser.java 和 JSONParser.java 从 API 读取 json 从文件中...

    黑马程序员-Java语言进阶-源码、教程笔记.zip

    day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 day08_File类、...

    Java 学习笔记极其详细版(包括一些个人色彩不仅仅是纯笔记)

    Java 8新特性:Lambda表达式、Stream API。 Java虚拟机(JVM):内存管理、垃圾回收、性能调优。 个人项目实践:结合作者经验,分享项目开发中的心得和技巧。 适用人群 Java初学者:希望从零开始学习Java编程的新手...

    Java基础最全笔记文档

    Java基础笔记分为 Java基础篇 和 Java加强篇 Java基础篇包括: 1. Java环境搭建、Java快速入门、IDEA开发工具 2. Java基础语法、类型转换、运算符、Scanner 3. 分支结构、循环结构、随机数 4. 数组详解、Debug工具...

    java8源码-javaSE:JavaSE是在日常工作中整理的功能demo(如Java操作Excel表格、冒泡算法等)总结这些JavaSE常用

    java8 源码 JavaSE 序言 Preface JavaSE是在日常工作中整理的功能demo(如Java操作Excel表格、冒泡算法等) 总结这些JavaSE常用demo,记录工作中常用的方法并方便日后复用。 功能简介 Introduction 1.adapter 设计...

    java进阶13天资料.zip

    Java进阶13天资料 day01-复习回顾、静态、继承、引用类型使用 day02-抽象类、接口、代码块,final、单例、枚举 day03-多态、包、权限修饰符、内部类,Object类,Date类 day04-常用API、正则表达式,泛型、Collection...

    新版java教程 全套javase零基础到高级视频教程小白自学编程下载地址

    ,重点讲解Collection:集合框架体系List/Set/Map多种 实现和API ·玩转集合框架迭代器和HashCode和Equals重新排序 实战 ·实战teratori迭代器和自定义Comparable:排序接口 ·玩转ava操作文件File类常用操作 ·案例...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    第8章 Java中的包(Package)命名习惯和注释 193 教学视频:43分钟 8.1 Java中的包(Package) 193 8.1.1 Java中的包 193 8.1.2 在Eclipse中使用包 194 8.1.3 天上掉下个package 197 8.1.4 包带来了什么? 197...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    第8章 Java中的包(Package)命名习惯和注释 193 教学视频:43分钟 8.1 Java中的包(Package) 193 8.1.1 Java中的包 193 8.1.2 在Eclipse中使用包 194 8.1.3 天上掉下个package 197 8.1.4 包带来了什么? 197...

    java编程基础,应用与实例

    第1章 什么是Java程序设计语言 1 1.1 Java语言诞生背景 1 1.2 Java语言的特点 1 1.2.1 可移植性(universality) 1 1.2.2 安全性(security) 1 1.2.3 Java Virtual Machine(JVM) 2 1.2.4 面向对象的程序...

    java8集合源码-php7-Arrayly:用类似于JavaStreams/KotlinCollections的方法装饰php数组

    Java流API: Stringy(字符串的 OO 风格装饰器): 替代概念 换能器: 管道,例如: 安装 $ composer require bastman/php7-arrayly 0.2.1 笔记 测试版。 快乐测试;) 执照 麻省理工学院。 用该代码做任何你喜欢的...

    ym_java-YOYOPlayer-src

    * BasicPlayer is a threaded simple player class based on JavaSound API. * It has been successfully tested under J2SE 1.3.x, 1.4.x and 1.5.x. */ @SuppressWarnings("unchecked") public class ...

    SuperiorStreams:有你的蛋糕也可以吃

    Java 8 中的 Streams API 不能正确处理异常或资源。 Superior Streams 是 JDK Streams API 的包装器,它在不使 API 复杂化的情况下添加了适当的异常传递和资源管理。 新增内容:实验集合 API 替换,具有 Map、Set ...

    hazelcastcustomised

    对Hazelcast数据结构(例如IMap和IList)的分布式java.util.stream API支持。 连接器允许从Apache Kafka,HDFS,Hazelcast IMDG,套接字和本地数据文件(例如日志或CSV)高速提取数据 自定义连接器的API 高度优化...

    spring_boot_alura:这是Alura的Spring入门课程的测试库

    关于这个项目 这个项目是为了修复内容而创建的,可以找到一些使用Spring Boot的示例。 考虑到我当时的技术水平,本自述文件中的注释代表了我认为值得更多关注的...TopicoDto类中提供的上述方法使用Java 8及更高版本中提

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    以2007年8月15日为例,美国人会把这个日期写成8/15/2007,澳大利亚人则会把它写成15/8/2007。本地化(10calization)通常简写为110n,这是因为这个单词的第一个字母是l,最后一个字母是n,并且l和n之间总共有10个...

    datastreams:高效,简洁的流数据处理

    map_method ( 'lower' )\ ... . count_frequency (). to_list () [( 'e' , 2 ), ( 'g' , 2 ), ( 'h' , 1 ), ( 'l' , 2 ), ( 'o' , 3 ), ( 's' , 1 ), ( 'r' , 1 ), ( 'u' , 1 )] 为什么 忙于ETL /功能工程任务时,...

Global site tag (gtag.js) - Google Analytics