首页 > 编程语言 >java8使用stream流将list转map

java8使用stream流将list转map

时间:2023-04-15 14:13:21浏览次数:60  
标签:map toMap Collectors stream 流将 User key Map

java8使用stream流将list转map
原文链接:https://blog.csdn.net/weixin_43769566/article/details/123815887

stream将list转化为map
在Stream流中将List转换为Map,是使用Collectors.toMap方法来进行转换。

1.key和value都是对象中的某个属性值。

Map<String, String> userMap1 = userList.stream().collect(Collectors.toMap(User::getId, User::getName));
  • 1

2.key是对象中的某个属性值,value是对象本身(使用返回本身的lambda表达式)。

Map<String, User> userMap2 = userList.stream().collect(Collectors.toMap(User::getId, User -> User));
  • 1

3.key是对象中的某个属性值,value是对象本身(使用Function.identity()的简洁写法)。

Map<String, User> userMap3 = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));
  • 1

4.key是对象中的某个属性值,value是对象本身,当key冲突时选择第二个key值覆盖第一个key值。

Map<String, User> userMap4 = userList.stream().collect(Collectors.toMap(User::getId, Function.identity(), (oldValue, newValue) -> newValue));
  • 1

如果不正确指定Collectors.toMap方法的第三个参数(key冲突处理函数),那么在key重复的情况下该方法会报出【Duplicate Key】的错误导致Stream流异常终止,使用时要格外注意这一点。

标签:map,toMap,Collectors,stream,流将,User,key,Map
From: https://www.cnblogs.com/sunny3158/p/17321023.html

相关文章

  • unordered_map和map的耗时
    在实际生产环境中,遇到使用map还是unordered_map的场景。一方面,有unordered_map需要自定义hash函数,导致构建时比较复杂。而map使用的是比较运算符来判断元素在map中的位置,std::vector有比较运算符,所以构建map比较简单。另一方面,unordered_map时hash表,查找时间复杂度为o(1),map......
  • Java stream实现list转化为map
    在Stream流中将List转换为Map,是使用Collectors.toMap方法来进行转换。key和value都是对象中的某个属性值。Map<String,String>userMap1=userList.stream().collect(Collectors.toMap(User::getId,User::getName));使用箭头函数Map中,key是对象中的某个属性值,value是......
  • Hashmap实现原理
     HashMap线程不安全loadFacter负载因子,默认值为0.75threshold=数组长度*负载因子loadFactorHashMap默认容量initial_capacity:16HashMap数组部分称为哈希桶当链表长度大于等于8时,链表数据将以红黑树的形式进行存储,当长度降到6时,转成链表输入数据计算方法hash(key......
  • Go笔记(七):Map
    map是一种key:value键值对的数据结构容器,通过key检索value,是引用类型。map内部实现是哈希表。1、Map的声明1.1、显示声明1、语法/*声明变量,默认map是nil*/varmap_variablemap[key_data_type]value_data_typemap_variable:map变量名称key_data_type:key......
  • 0008容器之unordered_multimap
    #include<list>#include<iostream>#include<vector>#include<stdexcept>#include<string>#include<cstdlib>//abort()#include<cstdio>//snprintf();整数转字符#include<ctime>#include<algorithm>#include<ar......
  • 09 Shading(Texture Mapping)
    1.TextureMapping下图中,不同位置的反射模型是一样的,但是颜色不同,这是因为漫反射系数不同。同样的,一个点应该还存在着很多属性,那么应当如何定义属性。三维图形的表面可以展开为二维平面,这一个二维平面(包含着对应的三维中三角形的属性)便是Texture。如何实行一个好的纹理映射,是......
  • Java Stream常见用法汇总,开发效率大幅提升
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~Github地址如果访问不了Github,可以访问gitee地址。gitee地址Java8新......
  • mapbox-gl实战教程:加载各种底图技巧2
    接续上篇,本篇继续讲mapbox-gl加载各种底图的技巧。五、矢量切片底图加载矢量切片(vectortiles)是随着mapbox-gl产生的一种地图切片格式,相比于之前的影像/图片格式的切片,矢量切片可以在客户端进行样式设置,当用户觉得地图配色等不满足要求时,只需要在客户端调整配置即可。矢量切片加......
  • 08 Shading(Shadding, Pipeline and Texture Mapping)
    关键点Real-TimeRenderingPipelineShader1.Graphics(Real-timeRendering)Pipeline管线1.1PipelineMVP,Rasterization,Z-Buffer,Shading,Texture1.2ShaderPrograms着色器通用程序,用于定义任意像素如何操作。来源[1]Games101.闫令琪......
  • 问题记录:BMap api is not loaded
    原因:mounted初始化时,异步问题导致百度api未引用完就初始化了。解决:修改引入方式,之前在index.html的head引入script标签,现在新建map.js文件。exportfunctionloadBMap(ak){returnnewPromise(function(resolve,reject){if(typeofBMap!=='undefined'){......