この記事では主に 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 サイトの他の関連記事を参照してください。