我有一个 Java ObservableList,其中包含数千个条目,每秒接收数百个更新,支持 JavaFX TableView。
ObservableList由 ArrayList 支持。可以对列表应用任意排序顺序。更新可能会更改列表中单个实体的排序顺序。如果我尝试在每次更新后进行排序,我会遇到性能问题,所以目前我有一个每秒执行一次排序的后台任务。但是,如果可能的话,我想尝试实时排序。
假设列表已经排序并且我知道要更改的元素的索引,有没有比再次在列表上调用排序更有效的方法来更新元素的索引?
我已经确定我可以使用它Collections.binarySearch()
来有效地找到要更新的元素的索引。还有一种方法可以有效地找到更新元素需要移动到的索引并移动 ArrayList 以使其保持有序?
我还需要处理添加和删除操作,但这些操作并不常见。