lambda常用操作

2个月前 202次点击 来自 其他

标签: 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()));
Card image cap
开发者雷

尘世间一个小小的开发者,每天增加一些无聊的知识,就不会无聊了

要加油~~~

技术文档 >> 系列应用 >>
热推应用
Let'sLearnSwift
学习Swift的入门教程
PyPie
Python is as good as Pie
标签