繁体   English   中英

存储数据表的最佳方法

[英]Best way to store a table of data

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

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

我的第一个猜测是ArrayList

两种方法:

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

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

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

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

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

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

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

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

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

何时使用LinkedList而不是ArrayList?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM