public class Student {
private String id;
private String name;
private String level;
}
List<Student> list = new ArrayList<>();
list.add(new Student("1","張三" + 1,"A" + 1));
list.add(new Student("2","張三" + 2,"A" + 2));
list.add(new Student("1","張三" + 3,"A" + 3));
list.add(new Student("4","張三" + 4,"A" + 4));
list.add(new Student("5","張三" + 5,"A" + 5));
/**
* map有3種重載
*/
//1 僅返回key,value的映射關系
Map<String, String> map1 = list.stream()
.collect(
Collectors
.toMap(
Student::getId,
Student::getName));
//2 用於針對有重復鍵的映射關系
Map<String, String> map2 = list.stream()
.collect(
Collectors
.toMap(
//用id做map的key,name做map的val,
//同一個key,可能會有多個val,用新val還是老val
//可以這樣設置
item -> item.getId(),
item -> item.getName(),
(oldVal, currVal) -> oldVal));
//3 用於返回某些特定map
Map<String, String> map3 = list.stream()
.collect(
Collectors
.toMap(
//用id做map的key,name做map的val,
//同一個key,可能會有多個val,用新val還是老val
//可以這樣設置
item -> item.getId(),
item -> item.getName(),
(oldVal, currVal) -> oldVal,
HashMap::new));