JavaFX TableViewを裏付ける1秒に数百の更新を受け取る数千のエントリを持つJava ObservableListがあります。
ObservableList はArrayList によって支えられています。リストには任意の並べ替え順序を適用できます。更新により、リスト内の 1 つのエンティティの並べ替え順序が変更される場合があります。各更新後に並べ替えを実行しようとするとパフォーマンスの問題が発生するため、現在、毎秒並べ替えを実行するバックグラウンド タスクがあります。ただし、できればリアルタイムでソートしてみたいと思います。
リストが既にソートされていて、変更する要素のインデックスがわかっていると仮定すると、リストでソートを再度呼び出すよりも要素のインデックスを更新する効率的な方法はありますか?
Collections.binarySearch()
更新する要素のインデックスを効率的に見つけるために使用できることは既に決定しています。更新された要素が移動する必要があるインデックスを効率的に見つけて ArrayList をシフトし、順番を維持する方法はありますか?
追加操作と削除操作も処理する必要がありますが、それらはあまり一般的ではありません。