4

パフォーマンス上の理由から、一部のコードをGNUtroveに移行しています。

ただし、いくつかのTreeSetがあり、ソートされた反復とともに、かなり高速な更新とルックアップが必要です。これは、TreeSetの主なユースケースです。もちろん、使用方法を調べて、HashSetと同じようにうまく機能できるかどうかを確認します。

SortedSetのGNUTroveからの適切な代替品は何ですか?

ありがとうございました。

4

1 に答える 1

2

更新: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、驚くほど優れたパフォーマンスが得られます。

于 2011-12-27T10:36:56.547 に答える