Java8 list与map互转
2021/7/9 11:36:04
本文主要是介绍Java8 list与map互转,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
取出对象的某个属性
list转map(无重复key)
list转map(有重复key)
list转set
map的value转list
map的key转list
测试数据
@Data @AllArgsConstructor @NoArgsConstructor public class Cell { /** 仓位编号 **/ private String cellNo; /** 仓位名称 **/ private String cellName; /** 排 **/ private Integer x; /** 列 **/ private Integer y; /** 层 **/ private Integer z; /** 是否启用 **/ private Boolean enable; }
private static List<Cell> cells = new ArrayList<Cell>(){ { add(new Cell("C001", "1排1列1层", 1, 1, 1, true)); add(new Cell("C003", "1排3列1层", 1, 3, 1, true)); add(new Cell("C002", "1排2列1层", 1, 2, 1, true)); add(new Cell("C005", "2排1列2层", 2, 1, 2, true)); add(new Cell("C004", "1排4列1层", 1, 4, 1, true)); add(new Cell("C007", "2排2列1层", 2, 2, 1, true)); add(new Cell("C006", "1排1列3层", 1, 1, 3, true)); } };
取出对象的某个属性
List<String> cellNos = cells.stream().map(Cell::getCellNo).collect(Collectors.toList());
list转map(无重复key)
Map<String, Cell> cellMap1 = cells.stream().collect(Collectors.toMap(Cell::getCellNo, cell -> cell)); //也可以用下面这个写法 Map<String, Cell> cellMap1_1 = cells.stream().collect(Collectors.toMap(Cell::getCellNo, Function.identity()));
list转map(有重复key)
Map<String, Cell> cellMap2 = cells.stream().collect(Collectors.toMap(Cell::getCellNo, cell -> cell, (pre, next) -> next));
list转set
Set<String> cellNo = cells.stream().map(Cell::getCellNo).collect(Collectors.toSet());
map的value转list
推荐写法一
List<Cell> cellList = new ArrayList<>(cellMap1.values()); //List<Cell> cellList = cellMap1.values().stream().collect(Collectors.toList());
map的key转list
List<String>cellNoList = new ArrayList<>(cellMap1.keySet());
这篇关于Java8 list与map互转的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略