パフォーマンス上の理由から、一部のコードをGNUtroveに移行しています。
ただし、いくつかのTreeSetがあり、ソートされた反復とともに、かなり高速な更新とルックアップが必要です。これは、TreeSetの主なユースケースです。もちろん、使用方法を調べて、HashSetと同じようにうまく機能できるかどうかを確認します。
SortedSetのGNUTroveからの適切な代替品は何ですか?
ありがとうございました。
パフォーマンス上の理由から、一部のコードをGNUtroveに移行しています。
ただし、いくつかのTreeSetがあり、ソートされた反復とともに、かなり高速な更新とルックアップが必要です。これは、TreeSetの主なユースケースです。もちろん、使用方法を調べて、HashSetと同じようにうまく機能できるかどうかを確認します。
SortedSetのGNUTroveからの適切な代替品は何ですか?
ありがとうございました。
更新:SourceforgeのTroveで関連する機能リクエストを見つけました:http ://sourceforge.net/tracker/index.php?func = detail&aid = 1631704&group_id = 39235&atid = 424685
これまでのところSortedSetはないようで、Troveの利点はここではそれほど大きくないようです。プリミティブ型のメモリを節約します(ボクシングを回避します)が、データのアルゴリズム構成は同じである可能性があります。 、およびエントリオブジェクトが必要です。
アップデート#2:
TIntArrayList
多くのユースケース(書き込みアクセスパターンによって異なります)では、を使用し、binarySearch
ルックアップのメソッド(配列がソートされていることを前提としています!)を使用するだけで、適切なパフォーマンスを得ることができるはずです。
ソートされた配列への挿入はO(n)であるため、配列に大量の変更を加え、それぞれの後にクエリを実行する場合、これはオプションではありません。ただし、変更が一括追加の場合は、更新のたびに呼び出すだけでsort
、驚くほど優れたパフォーマンスが得られます。