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();
这将遍历每个产品并将每个产品映射到双倍(即该产品的数量乘以该产品的价格),然后将所有这些结果相加。
添加回答
举报
