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



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

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

过滤后的行和基础数据之间的映射是如何准确工作的?我的意思是,它是存储任何额外的数据,还是只是"动态"地绘制与过滤器匹配的行??

非常感谢你的澄清。

在任何编程语言中,没有一个组件不被指定在屏幕上显示太大的数据矩阵,那么你就有两个选择

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

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

在@mKorbel的第二个点上展开,一个非常大的数据集的TableModel可能包含一个List<Record>,如这里所建议的。可以使用合适的CCD_ 3对列表进行排序,并使用CCD_。在任何时候,对应的JTable只能看到一个这样的分区,并且需要单独的控件来更改分区。

最新更新