lamda list 分组_Lambda表达式操作List集合

Lambda表达式是Java8中一个非常重要的新特性,它允许通过表达式代替功能性的接口,几乎所有的for循环都可以用Lambda表达式来改写,让你的代码更加简洁,开发更加迅速。

下面提供简单的几个Lambda表达式对List集合处理的案例,希望对大家有帮助。

// 以员工表为例

@ApiModel(value = "employee", description = "员工信息")

public class Employee {

private Integer id; //员工id

private String name; //员工姓名

private Integer age; //员工年龄

private Integer departId; //员工所属部门id

}

public class TestLambda {

// 获取初始化测试数据

private static List initList(){

List employees = new ArrayList<>();

employees.add(new Employee(1,"apple",22,1));

employees.add(new Employee(2,"banana",33,2));

employees.add(new Employee(3,"mango",22,3));

employees.add(new Employee(4,"pear",41,1));

employees.add(new Employee(5,"grape",54,3));

employees.add(new Employee(6,"orange",68,5));

employees.add(new Employee(7,"peach",29,2));

employees.add(new Employee(8,"raisin",37,1));

return employees;

}

public static void main(String[] args) {

// 获取初始化员工列表集合

List employees = initList();

// 1. 获取所有的员工id集合

List employeeList =

employees.stream().map(Employee::getId).collect(toList());

// 2. 获取员工id与员工信息的Map集合

Map idEmployeeMap = employees.stream().collect(

Collectors.toMap(Employee::getId, Function.identity()));

// 3. 员工id与员工姓名一一对应

Map idNameMap = employees.stream().collect(

Collectors.toMap(Employee:: getId, Employee::getName));

// 4. 部门分组,一个部门id对应多个员工信息

Map> departGroupMap = employees.stream().collect(Collectors.groupingBy(Employee::getDepartId));

// 5. 查询当前部门下员工的姓名集合

Map> departNamesMap =

employees.stream().collect(Collectors.groupingBy(Employee::getDepartId,

Collectors.mapping(Employee::getName, Collectors.toList()))

);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值