我正在开发类似于超市自助结账柜台的订单程序。在创建订单时,每个订单项都是一个对象,并保存在一个数组列表中。
LineItem类有两个变量 - ItemID和ItemQuantity。一种方法,incQuantity用于将数量增加1. 创建arraylist并向其添加lineItems没有问题,但在遇到具有相同ItemID的其他项目时无法调用incQuantity方法。 我正在使用get,remove和add序列来更新对象。 在我看来,必须有一种方法直接访问该对象,并调用incQuantity方法,而无需将其从数组列表中移除并重新添加。 请参阅下面的测试代码。访问和阵列列表中的对象(java)
public static class LineItem{
private String ItemID ;
private int ItemQuantity;
public LineItem(String ID) {
ItemID = ID;
ItemQuantity = 1; //upon first occurrence of an item, qty is initialized to 1
}
public void incQuantity() {
ItemQuantity++;
}
}
private static void TestItems() {
ArrayList <LineItem> orderSheet = new ArrayList<LineItem>();
LineItem newLine = new LineItem("12345");
orderSheet.add(newLine);
newLine = new LineItem("121233445");
orderSheet.add(newLine);
newLine = new LineItem("129767345");
orderSheet.add(newLine);
newLine = new LineItem("5454120345");
orderSheet.add(newLine);
newLine = new LineItem("0987123125");
orderSheet.add(newLine);
newLine = new LineItem("65561276345");
orderSheet.add(newLine);
// Increment Quantity of Element 0 below
LineItem updateLine = orderSheet.get(0);
updateLine.incQuantity();
orderSheet.remove(0);
orderSheet.add(updateLine);
}