2 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
正確的方法是在您的產(chǎn)品類中使用 Getter 和 Setter。
正如您在代碼中看到的那樣,您只需傳入變量并在構(gòu)造函數(shù)中初始化它們,但使用 getter 和 setter 初始化它們會(huì)更好,因?yàn)檫@是一種很好的編程實(shí)踐,并為您的代碼添加了更多功能。
例子
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,您可以:
創(chuàng)建一個(gè)方法來計(jì)算 ArrayList 中所有產(chǎn)品的總和
使用您的唯一標(biāo)識(shí)符在您的陣列中搜索特定產(chǎn)品
按變量對(duì)您的 Arraylist 進(jìn)行排序,可以是部門、價(jià)格等。

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