java - 高效的 TableModel 实现

标签 java swing data-structures

我的 TableModel 实现通常位于 ArrayList 上,以实现高效的随机访问性能。但是,ArrayListremove(int) 实现看起来相当低效,因为它涉及到调用 System.arrayCopy(...) 来进行 shift所有后续元素都减 1。

人们采用什么方法来实现 TableModel?我应该考虑更好的数据结构吗? ...也许是第三方库?

更多信息:我的表数据可以收缩和增长,因此任何固定大小的缓冲区实现都不起作用。

提前致谢。

最佳答案

你的问题充满了“过早优化”的味道。

在我的计算机上,System.arrayCopy() 可以复制 1 million elements of data in roughly 13ms 。所以我建议衡量这是否真的是一个问题。一般情况下,ArrayList 比任何其他类似的数据结构更快并且具有更好的内存性能。

使用 LinkedList 会使列表上的所有操作(包括 remove())变慢,因为您现在必须为每个操作遍历所有列表元素的一半(一般)。因此大多数操作都会从 O(1) 变为 O(N/2)。

关于java - 高效的 TableModel 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1192586/

相关文章:

java - 有人可以检查我的获取数组模式的算法,而决胜局根本没有模式吗?

java - 通过每次迭代更改每个字母将一个词转换为另一个词的算法应该形成另一个有意义的词?

java - 用Java文件方法删除Jar快捷方式

java - 如何使用 JDBC/Spring 调用 Oracle 存储过程,其中某些参数类型是用户定义的?

java - System.setOut 与 PipedOutputStream

java - 在 JColorChooser 中仅显示 2 个面板

java - 将浮点 double 转换为非浮点字符串

java - Tomcat 7 上的 Websockets 不起作用

java - 将值传递给对象变量

c++ - 什么是 "stack alignment"?