非常大的JTable,RowFilter和额外的负载

我想要求澄清RowFilter的使用及其对性能的影响。 我通过方法include(Entry)实现了一个filter,对于每一行,只需检查模型中的对应值是否设置了布尔标志:如果是,则返回true,否则返回false。

现在,我拥有的JTable可能相当大(1000000+行),我不确定应用于如此大的输入集的这种简单过滤是否成本高昂。

过滤行和基础数据之间的映射如何正常工作? 我的意思是,它是否存储任何额外的数据,或者它只是“动态”绘制与filter匹配的行?

非常感谢您的澄清。

任何编程语言中的任何组件都没有指定在屏幕上显示过于最大的数据矩阵,那么你有两个选择

  1. 更快的方法是让这个工作用于SQL引擎,指定用于搜索和过滤最大数据库表中的行

  2. 较慢的方法是在HashMap中保存这些数据并应用Comparator,而JTable只显示来自此Comparator的结果

扩展@mKorbel的第二点 ,一个非常大的数据集的TableModel可能包含List ,如此处所示 。 可以使用合适的Comparator对列表进行排序,并使用subList()方法进行动态分区。 在任何时候,相应的JTable只能看到一个这样的分区,并且需要单独的控件来更改分区。