lambda表达式实现过滤+多条件排序

Lambda表达式实现过滤、多个条件排序:

过滤条件

xMapper.selectLimitTimes(x.getId()) < x.getLimitTimes()

排序是先根据getLimitTimes() 排序,在根据getId() 排序

List<X> filterList = xList.stream().filter(x ->
    xMapper.selectLimitTimes(x.getId()) < x.getLimitTimes()
).sorted(Comparator.comparing(X::getLimitTimes).thenComparing(X::getId).reversed()).collect(Collectors.toList());
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lambda表达式是一种匿名函数,它可以在代码中直接定义函数而无需为其命名。Lambda表达式的语法简洁,可以用来编写高级的函数式编程代码。以下是Lambda表达式的一些高级用法: 1. 排序:可以使用Lambda表达式作为排序函数的参数。例如,可以使用Lambda表达式对列表中的元素进行按照某个属性进行排序: ``` numbers = [5, 2, 7, 1, 9] sorted_numbers = sorted(numbers, key=lambda x: x) ``` 在这个例子中,Lambda表达式`lambda x: x`指定了按照元素本身的值进行排序。 2. 过滤:可以使用Lambda表达式作为过滤函数的参数。例如,可以使用Lambda表达式筛选出列表中满足某个条件的元素: ``` numbers = [5, 2, 7, 1, 9] filtered_numbers = list(filter(lambda x: x > 5, numbers)) ``` 在这个例子中,Lambda表达式`lambda x: x > 5`指定了筛选出大于5的元素。 3. 映射:可以使用Lambda表达式作为映射函数的参数。例如,可以使用Lambda表达式对列表中的每个元素进行某种操作: ``` numbers = [5, 2, 7, 1, 9] mapped_numbers = list(map(lambda x: x * 2, numbers)) ``` 在这个例子中,Lambda表达式`lambda x: x * 2`指定了将每个元素乘以2。 4. 函数作为参数:Lambda表达式可以作为函数的参数,实现函数的动态调用。例如,可以使用Lambda表达式定义一个函数,然后将其作为参数传递给其他函数: ``` def apply_operation(x, operation): return operation(x) result = apply_operation(5, lambda x: x * 2) ``` 在这个例子中,Lambda表达式`lambda x: x * 2`定义了一个将输入值乘以2的函数,并将其作为参数传递给`apply_operation`函数。 Lambda表达式的高级用法不止于此,可以根据具体的需求使用Lambda表达式编写更加复杂的函数式代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值