Java 存储数据表的最佳方法

Java 存储数据表的最佳方法,java,Java,我有一个数据表(不同行的列数长度可能不同)。我还需要能够删除或添加新的数据行 存储此数据的最佳方式是什么 我的第一个猜测是一个ArrayList两种方法: 将所有内容转换为字符串并使用ArrayList,其中每个条目都是由ArrayList表示的行 优点:不需要创建自己的类来表示“行” 缺点:需要转换数据,不将数据转换回来就无法进行数学运算,需要确保所有行的长度相同。 正如dystroy所说,在表中创建一个表示行的类,并使用ArrayList 优点:条目保留其实际类型,行没有可变长度(除

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

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

我的第一个猜测是一个
ArrayList

两种方法:

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

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

  • 正如dystroy所说,在表中创建一个表示
    行的类,并使用
    ArrayList

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

  • 我会选择LinkedList,尤其是如果你希望你的列表能像堆栈一样工作的话

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

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

    据我所知,选择ArrayList而不是LinkedList的主要原因(在大多数情况下可能是唯一的…)是当您主要希望访问(阅读部分so)特定索引时。对于ArrayList,它是O(1),而对于LinkedList,它是O(n)

    有关更多信息,请阅读本文:


    一个数据表至少可以传递两个维度。您想用数据库或映射来代替吗?创建一个包含数组的行类,并使用ArrayList来包含您的“表”。当然,这取决于您的用例,但只有您可以根据自己的需要正确地设计它。使用多维数组看到了吗?所有列都具有相同的类型吗?多维数组不会使删除行变得简单。但是如果没有完整的需求集(包括数据、内容类型、列的可变性等等),我们就无法真正找到解决方案。