6

もちろん、私はarraylistとlinkedlistのパフォーマンスの違いについて知っています。私はテストを自分で実行し、非常に大きなリストのためにarraylistとlinkedlistの間の挿入/削除と繰り返しの時間とメモリの大きな違いを見ました。"両方" arraylistとlinkedlistのメリット... javaで可能ですか?

1)私たちは、実質的に挿入/削除よりも頻繁に繰り返しを行いますので、

は(私が間違っているなら、私を修正して)私たちは、一般的に LinkedListの上のArrayListを好む。だから私たちは挿入/削除よりも速い反復を好む。

2)のLinkedListのメモリオーバーヘッドが

3のArrayListよりもはるかにある)バッチで削除/挿入しながら、およびArrayListのように繰り返しながら、我々はLinkedListのようにリストを定義することが可能な方法はありません。 arraylistとlinkedlistは基本的に異なるデータ保存技術を持っているからです。

私は3番目の点について間違っていますか?]これらの2つのデータ構造の利点を単一のリストに持つ可能性はありますか?私は、データ構造の設計者はそれについて考えなければならないと思います。

+4

可能な複製:http://stackoverflow.com/questions/1712952/is-there-a-known-implementation-of-an-indexed-linked-list – Aubin

+0

あなたはあなた自身が言っていましたが、妥協のない解決策があれば、誰も 'ArrayList'と' LinkedList'について知りませんでした。 –

+0

@Aubinはリンクに感謝します。 +1: でも2009年の質問です。過去3年間のデータ構造分野の改善特にJava 7のリリース後? –

答えて

1

パフォーマンスの高いコレクションの実装をお探しの場合は、Javolutionをご覧ください。このパッケージはFastListFastTableを提供しています。少なくとも、リンクリストと配列リストの選択にかかるコストを削減できます。

関連する問題