【发布时间】:2010-02-11 18:45:41
【问题描述】:
我需要一个类表数据结构的 Java 实现,我可以在其中动态插入或删除行和列。我需要非常快速地从任何行或列获取数据,并且在选择行而不是列时没有开销,反之亦然。
有谁知道已经实现了这种数据结构的库?
【问题讨论】:
标签: java data-structures matrix
我需要一个类表数据结构的 Java 实现,我可以在其中动态插入或删除行和列。我需要非常快速地从任何行或列获取数据,并且在选择行而不是列时没有开销,反之亦然。
有谁知道已经实现了这种数据结构的库?
【问题讨论】:
标签: java data-structures matrix
您也许可以使用 DefaultTableModel。它旨在与 JTable 一起使用,但没有理由不能单独使用它。您需要添加方法来检索整行或整列的数据。
【讨论】:
AbstractTableModel 使您可以轻松使用自己的数据结构。您需要编写自己的更新代码,但通知机制已经到位。 java.sun.com/javase/6/docs/api/javax/swing/table/…
如果性能很关键,您可以使用 2D 数组,并实现 reallocation algorithm(例如加倍)以便它可以增长。
【讨论】:
来自 Google Guava 库的HashBasedTable 类执行此操作。如果行需要按排序顺序,还有 TreeBasedTable。
【讨论】:
也许是JQL 或 HSQL DB
【讨论】:
您可以简单地使用List<List<YourClass>>。或者,更简单的Map<Integer, List<YourClass>> 将行号(第一个参数,整数)映射到一行(第二个参数,YourClass 对象列表,List<YourClass>)...并围绕该集合构建一个 DataModel 类,确保可以通过实现自定义Iterator,遍历每一行中相同数量的元素(即使该行不包含所有元素,仅返回空值或空对象或类似内容)。
【讨论】: