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);
        });
    }
}

 

posted on 2025-03-04 18:37  oktokeep  阅读(29)  评论(0)    收藏  举报