List stream 轉Map

java8 stream API學習筆記java

關於list轉map demo,以下: ↓↓↓ide

//3個Users對象
Users users0 = new Users("0", "tom", 12);
Users users1 = new Users("1", "jerry", 11);
Users users2 = new Users("2", "superman", 12);

//users 加入示例 list
List<Users> list = new ArrayList<>();
list.add(users0);
list.add(users1);
list.add(users2);

//將list轉成map key:users.id value:users.age
Map<String, Integer> map = list.stream().collect(Collectors.toMap(Users::getId, Users::getAge));

//將list轉成map key:users.id value:users對象
//第一種 直接返回users自己
Map<String, Users> map0 = list.stream().collect(Collectors.toMap(Users::getId, users -> users));

//將list轉成map key:users.id value:users對象
//第二種 Function中有一個static方法identity 返回自己
Map<String, Users> map1 = list.stream().collect(Collectors.toMap(Users::getId, Function.identity()));

//將list轉成map key:users.age value:users對象
//若是list中的age存在相同的時候,轉化map的時候就會出錯Duplicate key
Map<Integer, Users> map2 = list.stream().collect(Collectors.toMap(Users::getAge, Function.identity()));
//toMap的重載,定義key2覆蓋key1的值
Map<Integer, Users> map3 = list.stream().collect(Collectors.toMap(Users::getAge, Function.identity(),(key1,key2)->key2));

 

Users對象,只有3個字段學習

private String id;
private String name;
private Integer age;

 

 

Mark 2018-5-24: 今天我要辭職, f-ck,fu-k,f--k.spa

------------------------------------------------------------3d

相關文章
相關標籤/搜索