我需要在收据上存储以下订单项:quantity, description, upc, and price
。
Java中存储这些的最佳方法是什么?我需要在某些点上逐行打印它们,就像收据打印机一样。集合中的元素数量应该是任意的,因为我将添加和删除元素。
5 item1 new item 324234 $4.99
1 item2 dish soap 34235346 $6.33
..等等
答案 0 :(得分:4)
我会考虑创建一些反映您想要表示的项目的对象。例如,您可能拥有Receipt
List
个ReceiptItem
的对象。
public class Receipt {
private List<LineItem> receiptItems;
// ...
public void add(LineItem lineItem) {
// be mindful of handling duplicates if needed
receiptItems.add(lineItem);
}
}
您的每件商品都会包含您希望跟踪的值
public class LineItem {
private int quantity;
private String description;
private String upc;
private BigDecimal price; // depending on the accuracy you need, you might be able to get away with double
// ...
public String getDescription() {
return description;
}
// ... add more getters to your heart's content ...
}
更新:
要访问私有方法,您可以创建一些getter或action方法。我在上面添加了一些例子。
答案 1 :(得分:3)
为每个arttibute编写一个带有getter和setter的简单类来表示一个行项目。然后使用List表示收据中的行项目序列。最后,您可能需要一个包含订单项列表的收据类,以及一系列其他属性:日期,总金额,税金等。
使用哪个List实现类可能没有任何区别。 LinkedList会很好,ArrayList也是如此。性能上的差异将无法察觉。
(不要试图使用像哈希表这样的开放数据结构来表示它。它会使你的代码更复杂,更难维护。而开放数据结构的时间和空间效率更低......如果你担心的是......你可能不应该在你的项目的这个阶段。)