list转map(基于stream)
效果图
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | package springboot; import org.junit.Test; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * @author yourheart * @Description * @create 2022-06-12 21:06 */ public class GoodsTests { @Test public void test001(){ // 创建一个List集合 List<FruitDTO> dtoList = Arrays.asList( new FruitDTO( "apple" , 5 ), new FruitDTO( "banana" , 6 ), new FruitDTO( "orange" , 6 ), new FruitDTO( "grape" , 5 ), new FruitDTO( "kiwi" , 4 ) ); // 将List<FruitDTO>转换为Map,以DTO的name作为key,DTO对象本身作为value Map<String, FruitDTO> dtoMap = dtoList.stream() .collect(Collectors.toMap( FruitDTO::getName, // key是FruitDTO对象的name属性 dto -> dto // value是FruitDTO对象本身 )); // 输出转换后的Map dtoMap.forEach((name, dto) -> System.out.println(name + ": " + dto)); Map<String, Integer> collect = dtoList.stream().collect( Collectors.toMap(FruitDTO::getName, FruitDTO::getLength) ); collect.forEach((name, length) -> System.out.println(name + ": " + length)); } } class FruitDTO { private String name; private int length; public FruitDTO(String name, int length) { this .name = name; this .length = length; } public String getName() { return name; } public int getLength() { return length; } @Override public String toString() { return "FruitDTO{" + "name='" + name + '\ '' + ", length=" + length + '}' ; } } |
用到的pom依赖
1 2 3 4 5 6 | <!--引入junit单元测试依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version> 4.13 . 2 </version> </dependency> |
标签:
stream
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2022-05-09 zuul网关简单使用