Java8使用stream把List转换为Map

class User {
  private String name;
  private int age;
  //getter and setter ....
}

List<User> users = getUsers();

映射属性

把用户列表映射出名称和年龄的Map

Map<String, Integer> ageMap = users.stream().collect(Collectors.toMap(User::getName,User::getAge));

映射对象

把用户列表映射为名称和用户对象的Map

 Map<String, User> userMap = users.stream().collect(Collectors.toMap(User::getName,user -> user));

注意:List转换为Map,列表里作为建的属性不能出现重复。