2 回答

TA貢獻1815條經驗 獲得超10個贊
正確的方法是在您的產品類中使用 Getter 和 Setter。
正如您在代碼中看到的那樣,您只需傳入變量并在構造函數中初始化它們,但使用 getter 和 setter 初始化它們會更好,因為這是一種很好的編程實踐,并為您的代碼添加了更多功能。
例子
public static class Product {
protected String department;
protected String unit;
protected int quantity;
protected double price;
protected long code;
protected String name;
private static NumberFormat formatter = new DecimalFormat("#0.00");
public Product(String dep,String uom,int qnt,double prz,long cod,String nm) {
setDep(dep);
setUom(uom);
setQnt(qnt);
setPrz(prz);
setCod(cod);
setNm(nm);
}
public void setPrz(double prz){
this.price = price;
}
//Other setters
public double getPrz(){
return price;
}
//Other getters
@Override
public String toString() {
return String.format(department+";"+unity+";"+quantity+";"+formatter.format(price)+";"+code+";"+name);
}
}
使用 Products 類中的 getter 和 setter,您可以:
創建一個方法來計算 ArrayList 中所有產品的總和
使用您的唯一標識符在您的陣列中搜索特定產品
按變量對您的 Arraylist 進行排序,可以是部門、價格等。

TA貢獻1824條經驗 獲得超8個贊
您已經將您的產品讀入一個數組,您需要遍歷該數組并price * quantity
為每個數組相加。
例如...
double totalValue = Arrays.stream(products).mapToDouble(p -> p.quantity * p.price).sum();
這將遍歷每個產品并將每個產品映射到雙倍(即該產品的數量乘以該產品的價格),然后將所有這些結果相加。
添加回答
舉報