lambda分组后获取每组第一条数据

本文介绍了一个使用Java Stream API进行数据分组的示例,通过一个Employee类实例展示了如何根据员工职位进行分组并获取各组中第一个元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

collect(groupingBy(Employee::getRank, Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0)))) 

import com.google.common.collect.Lists;

import java.util.ArrayList;
import java.util.Map;
import java.util.stream.Collectors;

import static java.util.stream.Collectors.groupingBy;

public class Test {
    public static void main(String[] args) {
        Employee employee1 = new Employee("松皇","总经理","100000000000");
        Employee employee2 = new Employee("小赵","助理","100000");
        Employee employee3 = new Employee("小智","打杂","20000");
        Employee employee4 = new Employee("小李","打杂","20000");
        ArrayList<Employee> employees = Lists.newArrayList(employee1, employee2, employee3, employee4);
        Map<String, Employee> collect =
                employees.stream().collect(groupingBy(Employee::getRank, Collectors.collectingAndThen(Collectors.toList(), value -> value.get(0))));
        System.out.println(collect);
    }
}
import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class Employee {
    private String name;
    private String rank;
    private String salary;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值