0

我需要在收据上存储以下行项目:quantity, description, upc, and price.

Java中存储这些的最佳方法是什么?我需要将它们逐行打印到输出,就像收据打印机一样。集合中的元素数量应该是任意的,因为我将添加和删除元素。

5 item1 new item 324234  $4.99
1 item2 dish soap 34235346 $6.33

..等等

4

2 回答 2

4

我会考虑创建一些反映您想要表示的项目的对象。例如,也许您可​​能有一个Receipt对象,它有一个Listof ReceiptItems。

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 或操作方法。我在上面添加了一些作为示例。

于 2012-07-03T23:14:37.290 回答
3

为每个 arttibute 编写一个带有 getter 和 setter 的简单类来表示一个行项目。然后使用 List 来表示收据中行项目的顺序。最后,您可能需要一个收据类,其中包含行项目列表和一堆其他属性:日期、总金额、税金等。

您使用哪个 List 实现类可能没有任何区别。LinkedList 可以,ArrayList 也可以。性能上的差异将无法察觉。


(不要试图尝试使用像哈希表这样的开放数据结构来表示它。它会使您的代码更复杂,更难维护。而且开放数据结构的时间和空间效率较低......如果你担心的话关于那个......你可能不应该在你的项目的这个阶段。)

于 2012-07-03T23:11:59.783 回答