list转map的三种方法( 二 )




Student Student2 = new Student();
Student2.setId(2L);
Student2.setAge("13");


StudentList.add(Student1);
StudentList.add(Student2);


Map<Long, Student> maps = Maps.uniqueIndex(StudentList,
new Function<Student, Long>() {
@Override
public Long apply(Student student) {
return student.getId();
}
});


System.out.println(maps);


}
}

list转map的三种方法

文章插图

2测试成果如下所示:

list转map的三种方法

文章插图

第三种:利用JDK1.8 将list调集转map1将一个对象作为value放入map中
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;


public class ListToMap {
public static void main(String[] args) {
        List<Student> StudentList = new ArrayList<Student>();
        Student Student1 = new Student();
        Student1.setId(1L);
        Student1.setAge("12");


        Student Student2 = new Student();
        Student2.setId(2L);
        Student2.setAge("13");


        Student Student3 = new Student();
        Student3.setId(2L);
        Student3.setAge("14");


        StudentList.add(Student1);
        StudentList.add(Student2);
        StudentList.add(Student3);




        /**
         * List -> Map
         * 需要注重的是:
         * toMap 若是调集对象有反复的key , 会报错Duplicate key ....
         *  apple1,apple12的id都为1 。
         *  可以用 (k1,k2)->k1 来设置 , 若是有反复的key,则保留key1,舍弃key2
         *  或者可以用 (k1,k2)->k2 来设置 , 若是有反复的key,则保留key2,舍弃key1
         */
        Map<Long, Student> maps = StudentList.stream().collect(Collectors.toMap(Student::getId,Function.identity(), (v1,v2)->v1));


        System.out.println(maps);


    }
}

list转map的三种方法

文章插图

2将一个对象的属性作为value


import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;


public class ListToMap {
public static void main(String[] args) {
        List<Student> StudentList = new ArrayList<Student>();
        Student Student1 = new Student();
        Student1.setId(1L);
        Student1.setAge("12");

推荐阅读