lambda常用操作
1年前 • 701次点击 • 来自 其他
标签: Java
先定义一个用户类
class User {
Integer id;
String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
提取所有的用户ID
List<Integer> userIds = users.stream().map(u -> u.getId()).collect(Collectors.toList());
提取所有的用户ID并去重
List<Integer> userIds = users.stream().map(u -> u.getId()).distinct().collect(Collectors.toList());
处理为HashMap -> key为用户ID,value为该User
Map<Integer, User> userMap = users.stream().collect(Collectors.toMap(User :: getId, u -> u));
处理为HashMap -> key为用户ID,value为该User,如果User重复,则key会重复:
Exception in thread "main" java.lang.IllegalStateException: Duplicate key 123456
需要指定在key重复时选择保留旧值还是新值
Map<Integer, User> userMap = users.stream().collect(Collectors.toMap(User :: getId, u -> u, (oldV, newV) -> newV));
按照id的大小进行排序
List<User> users = new ArrayList<User>();
users.sort((u1, u2) -> u1.getId().compareTo(u2.getId()));