Java中n个链接元素的集合

时间:2012-07-03 23:08:50

标签: java performance collections

我需要在收据上存储以下订单项:quantity, description, upc, and price

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

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

..等等

2 个答案:

答案 0 :(得分:4)

我会考虑创建一些反映您想要表示的项目的对象。例如,您可能拥有Receipt ListReceiptItem的对象。

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也是如此。性能上的差异将无法察觉。


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