我需要在收据上存储以下行项目:quantity, description, upc, and price
.
Java中存储这些的最佳方法是什么?我需要将它们逐行打印到输出,就像收据打印机一样。集合中的元素数量应该是任意的,因为我将添加和删除元素。
5 item1 new item 324234 $4.99
1 item2 dish soap 34235346 $6.33
..等等
我需要在收据上存储以下行项目:quantity, description, upc, and price
.
Java中存储这些的最佳方法是什么?我需要将它们逐行打印到输出,就像收据打印机一样。集合中的元素数量应该是任意的,因为我将添加和删除元素。
5 item1 new item 324234 $4.99
1 item2 dish soap 34235346 $6.33
..等等
我会考虑创建一些反映您想要表示的项目的对象。例如,也许您可能有一个Receipt
对象,它有一个List
of ReceiptItem
s。
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 或操作方法。我在上面添加了一些作为示例。
为每个 arttibute 编写一个带有 getter 和 setter 的简单类来表示一个行项目。然后使用 List 来表示收据中行项目的顺序。最后,您可能需要一个收据类,其中包含行项目列表和一堆其他属性:日期、总金额、税金等。
您使用哪个 List 实现类可能没有任何区别。LinkedList 可以,ArrayList 也可以。性能上的差异将无法察觉。
(不要试图尝试使用像哈希表这样的开放数据结构来表示它。它会使您的代码更复杂,更难维护。而且开放数据结构的时间和空间效率较低......如果你担心的话关于那个......你可能不应该在你的项目的这个阶段。)