存储数据表的最佳方法

时间:2012-05-02 15:17:21

标签: java

我有一个数据表(不同行的列数可以有所不同)。我还需要能够删除或添加新的数据行。

存储此数据的最佳方法是什么?

我的第一个猜测是ArrayList

2 个答案:

答案 0 :(得分:5)

两种方法:

  1. 将所有内容转换为字符串并使用ArrayList<List<String>>,其中每个条目都是由ArrayList<String>表示的行。

    • 优点:不需要创建自己的类来表示“行”。
    • 缺点:需要转换数据,不能在不转换数据的情况下进行数学运算,需要确保所有行的长度相同。

  2. 正如dystroy所说,在表格中创建一个代表Row的类,然后使用ArrayList<Row>

    • 优势:条目保留其实际类型,行没有可变长度(除非您希望它们),并且您可以使用有意义的方式来访问列(例如row.getDate()而不是row.get(3)
    • 缺点:创建附加类可能需要做更多工作。

答案 1 :(得分:1)

如果您希望列表作为堆栈工作,我会选择LinkedList。

ArrayList的主要缺点是,当达到容量时,这个会重新创建一个更大的表=&gt;表分配和复制会降低性能。

然而对于LinkedList,没有容量的概念,因为所有的都是指针。

据我所知,主要(在大多数情况下可能是唯一的......)更喜欢ArrayList而不是LinkedList的原因是当你主要想要访问(读取部分)特定索引时。对于ArrayList,它是O(1),而对于LinkedList,它是O(n)。

您可以阅读这篇文章了解更多信息:

When to use LinkedList over ArrayList?