Get total cost from arraylist
我不知道如何从这段代码中获得总成本.......... PurchaseList类应使用数组字段来存储所购买的项目,并跟踪其大小(项目数量)到目前为止的清单)。
PurchaseList类应具有以下方法:
PurchaseList()//构造一个新的空购买清单。
public void add(ItemPrice item)//如果列表未满(即少于10个项目),则将给定的购买项目添加到此列表中。
public double getTotalCost()//返回此列表中所有已购买项目的总和成本。
写另一个名为ItemPrice的类,它根据数量表示项目的价格。 ItemPrice类应存储项目数量和每单位价格。 ItemPrice对象应具有以下方法:
ItemPrice(String name,int quantity,double pricePerUnit)//构造一个具有给定名称,数量和每单位价格的购买项目。
public double getCost()//仅以给定数量返回此项目的总成本。
public void setQuantity(int quantity)//将此购买项目的数量设置为给定值。
最后创建测试类;
这是我的代码;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | import java.util.ArrayList; import java.util.List; class PurchaseList{ double totalcost = 0; private ArrayList<ItemPrice> itemlist; PurchaseList(){ itemlist = new ArrayList<ItemPrice>(10); } public void add(ItemPrice item){ itemlist.add(item); } public double getTotalCost(){ for (ItemPrice pricelist : itemlist) { totalcost += pricelist.getCost(); } return totalcost; } } class ItemPrice{ String name; int quantity; double pricePerUnit; ItemPrice(String name, int quantity, double pricePerUnit){ this.name=name; this.quantity=quantity; this.pricePerUnit=pricePerUnit; } public double getCost(){ return pricePerUnit*quantity; } public void setQuantity(int quantity){ this.quantity=quantity; } } public class TestPurchase{ private double item; public static void main (String[] args) { PurchaseList test = new PurchaseList(); ItemPrice itm =new ItemPrice("Milo",4,20.00); ArrayList<ItemPrice> itemlist= new ArrayList<ItemPrice>(); itemlist.add(itm); System.out.println(itm.quantity+" item(s) of"+itm.name +" is RM"+itm.getCost()+". Each item is priced at RM" + itm.pricePerUnit); ItemPrice itm1 =new ItemPrice("Milk",4,5.00); itm1.setQuantity(1); itemlist.add(itm1); System.out.println(itm1.quantity+" item(s) of"+itm1.name +" is RM"+itm1.getCost()+". Each item is priced at RM" + itm1.pricePerUnit); System.out.println("The Total cost of item in this list is RM"+test.getTotalCost()); } } |
谢谢!!!!!!
首先,
1 | private ArrayList<ItemPrice> itemlist; |
应该是这样的
1 | private List<ItemPrice> itemlist = new ArrayList<>(); |
然后,您可以保留一个运行总计,因为项目已添加到列表中
1 2 3 4 | public void add(ItemPrice item){ itemlist.add(item); totalcost += item.getCost(); } |
或者你可以迭代
1 2 3 4 5 6 7 | public double getTotalCost() { double total = 0; for (ItemPrice ip : itemlist) { total += ip.getCost(); } return total; } |
好了,因为你有一个访问器方法,你可以使用getCost()并将arraylist中的每个值添加到一个变量中。 然后,该变量可用于返回arraylist中所有itemprices的总成本。
1 2 3 4 5 6 7 8 9 10 11 | public double getTotalCost() { double totalcost = 0; //BE SURE TO START TOTAL COST AT ZERO OR IT CANNOT ADD UP!!! for(int i = 0; i < itemlist.size(); i++) { totalCost += itemlist.get(i).getCost(); } //DON'T DO IT IN THE FOR LOOP OR THE RETURN STATEMENT WILL STOP IT! return totalCost; } |