Java Collectors.toMap 列表转换为Map使用
Java Collectors.toMap 列表转换为Map使用
package com.example.core.mydemo.javatest; public class A1 { private A2 a2; private String ID;//A1 的ID属炷 public A1() { super(); } public A1(A2 a2, String ID) { this.a2 = a2; this.ID = ID; } public A2 getA2() { return a2; } public void setA2(A2 a2) { this.a2 = a2; } public String getID() { return ID; } public void setID(String ID) { this.ID = ID; } } package com.example.core.mydemo.javatest; public class A2 { private String ID; private String NAME; public A2() { super(); } public A2(String ID, String NAME) { this.ID = ID; this.NAME = NAME; } public String getID() { return ID; } public void setID(String ID) { this.ID = ID; } public String getNAME() { return NAME; } public void setNAME(String NAME) { this.NAME = NAME; } } package com.example.core.mydemo.javatest; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * output: * ID:A1_3,Name:charlie * ID:A1_1,Name:Alice * ID:A1_2,Name:Bob */ public class Main { public static void main(String[] args) { //创建-些示例数据 A2 a2_1 = new A2("1","Alice"); A2 a2_2 = new A2("2","Bob"); A2 a2_3 = new A2("3","charlie"); A1 a1_1 = new A1(a2_1,"A1_1"); A1 a1_2 = new A1(a2_2,"A1_2"); A1 a1_3 = new A1(a2_3,"A1_3"); List<A1> list= Arrays.asList(a1_1,a1_2,a1_3); //转换为Map<String,string>,key为A1的ID,value为A2的NAME Map<String,String> resultMap = list.stream().collect(Collectors.toMap(A1::getID, a1 -> a1.getA2().getNAME())); //输出结果 resultMap.forEach((key,value)-> { System.out.println("ID:"+key+",Name:"+ value); }); } }