4

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

存储这些数据的最佳方式是什么?

我的第一个猜测是ArrayList.

4

2 回答 2

6

两种方法:

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

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

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

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

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

ArrayList 的主要缺点是,当达到容量时,它会重新创建一个更大的表 => 表分配,并且复制会降低性能。

而对于 LinkedList,没有容量的概念,因为所有工作都是通过指针来工作的。

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

您可以阅读这篇文章以获取更多信息:

何时在 ArrayList 上使用 LinkedList?

于 2012-05-02T16:23:04.280 回答