ホームページ  >  記事  >  Java  >  Java の ArrayList と LinkedList を比較するグラフィックとテキストの詳細

Java の ArrayList と LinkedList を比較するグラフィックとテキストの詳細

Y2J
Y2Jオリジナル
2017-05-03 14:47:031715ブラウズ

この記事では主に Java の ArrayList と LinkedList を例を通して比較します。必要な方は参考にしてください。ArrayList と LinkedList は両方とも Collection インターフェイスの一般的な実装メソッドであり、さまざまな状況に応じて異なるストレージ戦略を使用します。

実装方法

ArrayList は内部でコレクションを使用してデータを保存します

注意する必要がある唯一のことは、容量がしきい値を超えた場合の処理​​ロジックでは、配列のデフォルトの容量は 10 であることです。最大容量は Integer.Max_Value です。最大容量を超えると、メモリ オーバーフロー例外がスローされます

以下の拡張メカニズムを参照してください

拡張された容量は元の容量の 1.5 倍です

LinkedListの実装

双方向リンクリストの内部使用 ノード内部クラスはストレージデータに使用されます。二重リンクリストの使用により、LinkedListはスタックとキューとしても使用できますが、効率は比較的高くなりますJava は ArrayDeqeue の高効率な実装を提供します。

パフォーマンスの比較

末尾挿入効率の点では、両者の差はそれほど大きくありませんが、LinkedList は二重リンクリストの関係を維持する必要があり、すべてのストレージ効率は LinkedList よりもわずかに劣ります。 ArrayList

ArrayList 時間は主に容量拡張とデータ移行に費やされています 容量を一度に初期化すれば改善の余地があるはずです もう一度比較してみましょう

Linked の利点はヘッドにあり、部分挿入の効率はヘッド要素のポインタを変更するだけで済みますが、配列は後続のデータも移動する必要があるため、すべての効率は LinkedList

の効率よりもはるかに低くなります。

getとset操作の場合、リンクリストは2つの部分に分割されます 検索の場合、配列は添字を介して要素に直接アクセスできるため、LinkedListよりも効率が高くなります

上記の比較に基づいて、基本的に次のことが判断できます

データを保存して単純な反復を実行するだけの場合は、通常、コレクションを使用するのが最も効率的です。
要素を頻繁に変更する場合は、LinkedList を使用する必要があります

以上がJava の ArrayList と LinkedList を比較するグラフィックとテキストの詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。