【发布时间】:2019-12-31 15:36:41
【问题描述】:
假设我有一个简单的对象:
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();
【问题讨论】:
-
我真的不明白这个问题,你的方法还不够简单吗?如果您想对所有字段快速执行此操作,只需复制并粘贴代码并替换 item.field 的每个提及。
-
您可以流式传输和减少数据。
-
@HopefullyHelpful 在实际的生产代码中,我需要遍历大约 40 个字段,这会导致一些非常粗糙的重复代码。
-
如果您的字段定义为
static,您将不会得到您认为会得到的结果。删除static关键字。
标签: java collections average