java - Java:当我有一组对象时,有没有一种简单的方法来获得平均值?
问题描述
所以假设我有一个简单的对象:
public class Items {
private static int
numItems,
itemsInStock,
itemsSold,
//...
}
在代码的其他地方我有一个ArrayList<Items>
如果有一种简单的方法可以获得 numItems / ItemsInStock 等的平均值/中位数,而无需对对象的每个字段执行 for/each?
当前代码如下所示:
for (Items item: allItems) {
if (item.field != null) {
temp += item.field;
}
}
fieldAvg = temp / allItems.size();
解决方案
可以说使用流会更优雅:
double avg = allItems.stream().mapToInt(i -> i.itemsInStock).average().getAsDouble();
// Or any other field -------------------------^
推荐阅读
- c# - 从类列表中删除重复元素
- python - 展开 Python 正则表达式以列出所有可能的字符串
- firebase - Firebase 动态链接分析未显示?
- php - ChoiceType 未映射到实体字段
- android - 如何从 listview onclick 项目中获取特定的 edittext 值?
- python - SQLAlchemy 验证 SSL 连接
- typescript - RxJS:switchMap/mergeMap 中的扫描运算符
- javascript - 未捕获的类型错误:无法读取未定义的属性“包含”
- presto - Presto拆分字符串,但输出到新行
- c - 一次从文件中读取 2 行,然后在 C 中交替将两行合并为一行