Java :将 arraylist 中的 2 个元素相乘

Java : multiply 2 elements from an arraylist

如何在程序中输出产品的总成本?我的程序输出始终为 0。

我有一个数组列表,类型是一个名为 Product 的对象;

static ArrayList<Product> productArray = new ArrayList<Product>();

产品构造函数是;

public Product(String productName, String productLink, double purchasePrice, String purchaseDate,
        String repurchaseDate, int quantity) {
    this.productName = productName;
    this.productLink = productLink;
    this.purchasePrice = purchasePrice;
    this.purchaseDate = purchaseDate;
    this.repurchaseDate = repurchaseDate;
}

我正在尝试遍历数组列表,以输出产品的总成本。产品的总成本是数量*采购价格。方法是;

public static void totalSpend() {
    
    double productCost = 0, totalCost = 0;

    for (int i = 0; i < productArray.size(); i++) {
        
        productCost = ((double)productArray.get(i).getQuantity()) * ((double)productArray.get(i).getPurchasePrice());
        
        System.out.println("\nThe "+productArray.get(i).getProductName()+" costs £"+productArray.get(i).getPurchasePrice());
        
        totalCost+= productCost;
        
    }
    
    System.out.println("\nThe total cost is £"+totalCost);

}//methodEnd

我试过将 productCost 转换为 double 和 int,尝试将 productCost 和 totalCost 移动到循环内。

如何将数组传递给方法? 看起来您的方法正在处理没有数据的数组。使用 Product 对象初始化数组并将其传递给方法

尝试: public static void totalSpend(ArrayList<Product> productArray){

将来,您应该 post 更多代码以了解它们是如何联系在一起的,但是根据您在这里的内容,我想我看到了问题所在。 Product 的构造函数有一个数量参数,但您实际上并没有将该值保存在构造函数中的任何位置。( this.quantity = quantity )假设 getQuantity() returns 一个存储在某处的 int产品 class,它可能只会返回默认的 int 值零,导致无论您做什么,产品成本始终为零。