Lambda操作集合

集合

Lambda(stream)操作集合

过滤集合(得到一个对象)

Object object = list.stream()
                .filter(item -> item.get*().equals("*"))
                .findFirst()
                .get();

过滤集合(得到一个集合)

List<Object> objectList = list.stream()
                .filter(item -> item.get*().equals("*"))
                .collect(Collectors.toList());

将集合对象中的某个值提取出来

List<Object> collect = list.stream()
                //也可以 map(item->item.get字段())
                .map(对象::get字段)
                .collect(Collectors.toList());

集合去重

List<Object> objectList = list.stream()
                .distinct()
                .collect(Collectors.toList());

集合统计 ((.mapToDouble))

double sum = list.stream()
                //不同类型用不同方法
                .mapToDouble(Object::get字段)
                //求和 sum 最大 max 最小 min 平均 average
                .sum();

集合统计(BigDecimal类型需要特殊处理)

BigDecimal reduce = orderDTOList.stream()
                //过滤去除 null(有null会报错)
                .filter(item -> item.getPrice() != null)
                .map(Object::getPrice)
                //只用求和方法就行,因为有初始值(BigDecimal.ZERO),最大最小会把初始值算进去
                .reduce(BigDecimal.ZERO, BigDecimal::add);

分组

//一个字段分组
Map<String, List<Object>> map = list.stream()
                .collect(Collectors.groupingBy(Object::get字段)); 
//多个字段分组
Map<String, List<Object>> map = list.stream()
                .collect(Collectors.groupingBy(o -> o.get字段1+"_"+o.get字段2+...)); 
//自定义分组
Map<String, List<Object>> map = list.stream()
                .collect(Collectors.groupingBy(o -> {
                    //逻辑代码
                    return 分组条件;
                }));

排序

list.sort((o1,o2) -> o2.get字段().compareTo(o1.get字段()));

集合转string(指定字符分割)

//import com.google.common.base.Joiner;
Joiner.on(",").join(list)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值