我是靠谱客的博主 怕孤单项链,最近开发中收集的这篇文章主要介绍java集合中最大值、平均值以及总和计算问题(BigDecimal类型),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

取集合中的最大值、平均值以及总和

最大值(此处列举实体类中字段类型为BigDecimal)
实体类如下:

@ApiModel("实体类")
@Data
public class MFnnclChange implements Serializable {

    private BigDecimal money;
}

测试代码如下:

public static void main(String[] args){
        //定义集合  MFnnclChange指的是实体类
        List<MFnnclChange> mFnnclChangeList = new ArrayList<>();
        //new对象
        MFnnclChange mFnnclChange = new MFnnclChange();
        MFnnclChange mFnnclChange1 = new MFnnclChange();
        MFnnclChange mFnnclChange2 = new MFnnclChange();
        MFnnclChange mFnnclChange3 = new MFnnclChange();
        MFnnclChange mFnnclChange4 = new MFnnclChange();
        MFnnclChange mFnnclChange5 = new MFnnclChange();
        //给对象赋值
        mFnnclChange.setMoney(new BigDecimal(10));
        mFnnclChange1.setMoney(new BigDecimal(30));
        mFnnclChange2.setMoney(new BigDecimal(40));
        mFnnclChange3.setMoney(new BigDecimal(20));
        mFnnclChange4.setMoney(new BigDecimal(100));
        mFnnclChange5.setMoney(new BigDecimal(50));
        //将值添加到集合中去
        mFnnclChangeList.add(mFnnclChange);
        mFnnclChangeList.add(mFnnclChange1);
        mFnnclChangeList.add(mFnnclChange2);
        mFnnclChangeList.add(mFnnclChange3);
        mFnnclChangeList.add(mFnnclChange4);
        mFnnclChangeList.add(mFnnclChange5);
        //计算值
        BigDecimal max1 = mFnnclChangeList.stream().max(Comparator.comparing(MFnnclChange :: getMoney)).get().getMoney();
        System.out.println("最大值为: " + max1);
  }

若是直接从api查出的数据中取最大值,那你需要的代码可能就下面这一句话足以。

BigDecimal max1 = mFnnclChangeList.stream().max(Comparator.comparing(MFnnclChange :: getMoney)).get().getMoney();

说完了,看下效果图吧:
在这里插入图片描述
最大值到此结束,我们再来看看总和:
实体类还是不变,我们直接上测试代码吧:

 public static void main(String[] args) {
        //定义集合  MFnnclChange指的是实体类
        List<MFnnclChange> mFnnclChangeList = new ArrayList<>();
        //new对象
        MFnnclChange mFnnclChange = new MFnnclChange();
        MFnnclChange mFnnclChange1 = new MFnnclChange();
        MFnnclChange mFnnclChange2 = new MFnnclChange();
        MFnnclChange mFnnclChange3 = new MFnnclChange();
        MFnnclChange mFnnclChange4 = new MFnnclChange();
        MFnnclChange mFnnclChange5 = new MFnnclChange();
        //给对象赋值
        mFnnclChange.setMoney(new BigDecimal(10));
        mFnnclChange1.setMoney(new BigDecimal(30));
        mFnnclChange2.setMoney(new BigDecimal(40));
        mFnnclChange3.setMoney(new BigDecimal(20));
        mFnnclChange4.setMoney(new BigDecimal(100));
        mFnnclChange5.setMoney(new BigDecimal(50));
        //将值添加到集合中去
        mFnnclChangeList.add(mFnnclChange);
        mFnnclChangeList.add(mFnnclChange1);
        mFnnclChangeList.add(mFnnclChange2);
        mFnnclChangeList.add(mFnnclChange3);
        mFnnclChangeList.add(mFnnclChange4);
        mFnnclChangeList.add(mFnnclChange5);
        BigDecimal sumNewBrnchCd = mFnnclChangeList.stream().map(MFnnclChange::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
        System.out.println("该数据总和为: " + sumNewBrnchCd);

    }

和上面重复的一样,直接掉api,需要的代码只需要下面这一句话足矣:

BigDecimal sumNewBrnchCd = mFnnclChangeList.stream().map(MFnnclChange::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);

效果图奉上:
在这里插入图片描述
这么快就到最后了。我们一去看看平均值的计算吧。
废话不多说,直接上测试代码:

  public static void main(String[] args) {
        //定义集合  MFnnclChange指的是实体类
        List<MFnnclChange> mFnnclChangeList = new ArrayList<>();
        //new对象
        MFnnclChange mFnnclChange = new MFnnclChange();
        MFnnclChange mFnnclChange1 = new MFnnclChange();
        MFnnclChange mFnnclChange2 = new MFnnclChange();
        MFnnclChange mFnnclChange3 = new MFnnclChange();
        MFnnclChange mFnnclChange4 = new MFnnclChange();
        MFnnclChange mFnnclChange5 = new MFnnclChange();
        //给对象赋值
        mFnnclChange.setMoney(new BigDecimal(10));
        mFnnclChange1.setMoney(new BigDecimal(30));
        mFnnclChange2.setMoney(new BigDecimal(40));
        mFnnclChange3.setMoney(new BigDecimal(20));
        mFnnclChange4.setMoney(new BigDecimal(100));
        mFnnclChange5.setMoney(new BigDecimal(50));
        //将值添加到集合中去
        mFnnclChangeList.add(mFnnclChange);
        mFnnclChangeList.add(mFnnclChange1);
        mFnnclChangeList.add(mFnnclChange2);
        mFnnclChangeList.add(mFnnclChange3);
        mFnnclChangeList.add(mFnnclChange4);
        mFnnclChangeList.add(mFnnclChange5);
        
        BigDecimal avgNewBrnchCd = mFnnclChangeList.stream().map(MFnnclChange :: getMoney).reduce(BigDecimal.ZERO, BigDecimal :: add).divide(BigDecimal.valueOf(mFnnclChangeList.size()), 2, BigDecimal.ROUND_HALF_UP);
        System.out.println("该数据总条数为:" + mFnnclChangeList.size());
        System.out.println("平均数为: " + avgNewBrnchCd);

    }

多加了一条条数,可能看的更加详细吧…
更上面一样… 一行代码,我就不说了… 我们直接上测试结果吧
在这里插入图片描述

本篇到此结束,希望对你有益。至于类型不同,可能平均数写法可能不太一样,对于最大值,貌似没啥区别,只是接收类型一样罢了…

最后

以上就是怕孤单项链为你收集整理的java集合中最大值、平均值以及总和计算问题(BigDecimal类型)的全部内容,希望文章能够帮你解决java集合中最大值、平均值以及总和计算问题(BigDecimal类型)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部