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