概述
取集合中的最大值、平均值以及总和
最大值(此处列举实体类中字段类型为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类型)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复