この非常に古い投稿に加えて、プリミティブを使用し、多くのHashSet
sを含むアプリケーションの高速化を提供するものが必要ですIntegers
。
Set<Integer> set = new HashSet<Integer>();
したがって、人々はGuava、Javalution、Troveのようなライブラリについて言及しますが、ベンチマークとパフォーマンス結果、または少なくとも良い経験から得られる良い答えに関して、それらの完全な比較はありません。私が見るところから、多くの人がTroveをお勧めしますTIntHashSet
が、他の人はそれはそれほど良くないと言います。Guavaは超クールで扱いやすいと言う人もいますが、私は美しさと保守性を必要とせず、実行時間だけが必要なので、PythonのスタイルGuavaは家に帰ります:) Javalution?私はウェブサイトにアクセスしましたが、私には古すぎるようで、風変わりです。
ライブラリは達成可能な最高の時間を提供する必要があり、メモリは重要ではありません。
「Javaで考える」を見ると、キーとしてカスタムHashMap
を作成するというアイデアがありint[]
ます。HashSet
だから私は、または単にダウンロードして素晴らしいライブラリを使用するのと同じようなものを見たいと思います。
編集(以下のコメントに応じて)したがって、私のプロジェクトでは、約50のHashSet<Integer>
コレクションから開始し、次に関数を約1000回呼び出して、内部で最大10HashSet<Integer>
のコレクションを作成します。初期パラメータを変更すると、数値が指数関数的に増加する可能性があります。私はそれらのコレクションで、メソッドのみを使用します。そのため、これらのコレクションが選択されadd()
ましcontains()
た。clear()
次に、実装するライブラリなどを見つけますが、自動ボクシングのオーバーヘッドと、おそらく私が知らない他の何かのHashSet
ために、それをより速く実行します。Integer
実際、私はデータが入ってくるときにintを使用して、それらをそれらに格納していHashSet
ます。