1. ホーム
  2. java

[解決済み] Queueの基本機能を持つ最速のJavaコレクションは何ですか?

2023-07-06 09:22:27

質問

Javaで最も高速なコレクションは何ですか?

私は追加と削除の操作だけが必要で、順序は重要ではありません、等しい要素は問題ではありません、追加と削除以上のものは重要ではありません。

サイズに制限がないことも重要です。

これらのコレクションは、彼の中にオブジェクトを持つことになります。

現在、私はArrayDequeを使用しています。これは、より高速なQueueの実装であることを確認したからです。

どのように解決するのですか?

ArrayDeque がベストです。参照 このベンチマーク から来ています。 このブログの記事 で、これをベンチマークした結果について ArrayDeque のようなノード割り当てのオーバーヘッドがありません。 LinkedList のようなノード割り当てのオーバーヘッドもありませんし、 リムーブ時に配列の内容を左にシフトするオーバーヘッドもありません。 ArrayList が持つオーバーヘッドもありません。ベンチマークでは、約 3x と同じように LinkedList よりも優れており、さらに ArrayList よりもわずかに良好です。最高のパフォーマンスを得るためには、おそらく、多くのリサイズを避けるために、一度に保持する可能性のある要素数を保持するのに十分な大きさの初期容量を与えたいと思うことでしょう。

の間に ArrayListLinkedList であることから、キューが任意の時間に含む全要素の平均数に依存するようであり、また LinkedList を打ちます。 ArrayList が10要素くらいから始まる。