(十一)Java8新特性之Stream知识分享

优秀博客分享地址:

点击进入:(侵权请联系删除)

直奔主题

1:构造数据集合
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author xiexianxin
 * @create 2021-12-02 14:26
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class M {
    private String a;
    private Integer c;
    private String d;
}

       M m=new M("001",99,"men");
        M m1=new M("002",100,"women");
        M m2=new M("003",110,"men");
        M m3=new M("004",115,"men");
        M m4=new M("004",115,"men");
        M m5=new M("002",80,"women");
        M m44=new M("044",115,"men");
        List<M> MList=new ArrayList<M>();

        MList.add(m);
        MList.add(m1);
        MList.add(m2);
        MList.add(m3);
        MList.add(m4);
        MList.add(m5);
        MList.add(m44);
2:对某一属性去重,例如业务上可用于校验是否属于同一属性
ArrayList<M> mArrayList = MList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(M::getD))), ArrayList::new));
        for (M m6 : mArrayList) {
            System.out.println(m6);
        }
        if(mArrayList.size()>1){
            System.out.println("收款人不同,不能生成付款单");
        }

在这里插入图片描述

3:对重复数据去重
List<M> collect = MList.stream().distinct().collect(Collectors.toList());
        for (M m6 : collect) {
            System.out.println(m6);
        }

在这里插入图片描述

4:按照某一属性进行分组并统计数量
Map<String, Long> collect = MList.stream().collect(Collectors.groupingBy(M::getD, Collectors.counting()));
        System.out.println(collect);

在这里插入图片描述

5:按照某一属性分组后在比较,求满足某一属性值中最小的数据
Map<String, M> collect = MList.stream().collect(Collectors.groupingBy(M::getD, Collectors.collectingAndThen(Collectors.minBy(Comparator.comparing(M::getC)), Optional::get)));
        System.out.println(collect);

在这里插入图片描述

6:求某一属性值最大的对象
Optional<M> max = MList.stream().filter(s -> s.getC() != null).max(Comparator.comparing(M::getC));
        System.out.println(max);

在这里插入图片描述

7:求某一属性数值平均值
 Double collect = MList.stream().collect(Collectors.averagingDouble(M::getC));
        System.out.println(collect);

在这里插入图片描述

8:获取某一属性的所有集合
List<String> collect = MList.stream().map(M::getA).collect(Collectors.toList());
        for (String s : collect) {
            System.out.println(s);
        }

在这里插入图片描述

关于使用Stream(java编码)与SQL的利与弊链接分享

Stream与SQL对比地址

Java编码与SQL对比地址

今日分享到此结束,谢谢大家!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我实在是想不出什么好听的昵称了啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值