Java 如何从ArrayList计算平均值
我试图从购物车数组列表中计算平均值。平均值是指所有产品的总和除以其数量?,如果我错了,请纠正我,也许这就是我的逻辑不起作用的原因 我试着做一个循环,计算所有乘积的和,然后除以它的数量Java 如何从ArrayList计算平均值,java,Java,我试图从购物车数组列表中计算平均值。平均值是指所有产品的总和除以其数量?,如果我错了,请纠正我,也许这就是我的逻辑不起作用的原因 我试着做一个循环,计算所有乘积的和,然后除以它的数量 public double getAverageValue(){ double averageValue = 0; for ( int i=0; i < cartLineList.size() ; i++) { double sum += cartLineList.get(i
public double getAverageValue(){
double averageValue = 0;
for ( int i=0; i < cartLineList.size() ; i++) {
double sum += cartLineList.get(i).getProduct();
}
for (CartLine cart : cartLineList) {
averageValue = (sum / cart.getQuantity());
}
return averageValue;
}
public class CartLine {
private Product product;
private int quantity;
public CartLine(Product product, int quantity) {
this.product = product;
this.quantity = quantity;
}
public double getSubtotal() {
return quantity * product.getPrice();
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
}
试试这样的
public double getAverageValue(){
double averageValue = 0;
double sum = 0;
if(cartLineList.size() > 0){
for ( int i=0; i < cartLineList.size() ; i++) {
// assuming the product class has a price
sum += cartLineList.get(i).getProduct().getPrice();
}
averageValue = (sum / (double)cartLineList.size())
}
return averageValue;
}
看起来很好,你有什么问题?甚至没有编译。sum仅适用于第一个循环,请在此处查找正确的方法。您的代码似乎无法编译。您应该首先定义sum变量,并且只定义一次,因为现在每个循环都要定义sum变量,然后累加sum,最后将sum除以cart数组的大小。@Бааааааааааjavascript@alain.janinm=+是有效的,但更像=+也就是说,赋值和大部分NOP只是数字升级,当然不是想要什么如果CartlineList.size>0是redunant,以及将cartLineList的大小强制转换为两倍,因为sum已经是两倍。不,当您除以它averageValue=sum/doublecartLineList.size时,需要检查它是否大于0。另外,当你在一个double和一个非double值之间进行除法或乘法时,你应该总是将两者都转换为double,否则你会得到奇怪的结果。对不起,没有足够的注意,你检查零是对的,但是,使用isEmpty方法可能更好。我从来没有听说过用整数除以double的问题。你能分享一些关于它的话题吗?谢谢@HarisBouchlis!它可以编译,但当我运行JUnit测试时,它不起作用,但在调试之后,一切正常,因为我已更正了此函数的预期值。@БааааМаааааа检查此项