\r\n\r\n
セットは、データを保存するのに便利です。通常の配列では、配列の大きさは固定です。Javaなどのプログラミング言語には、コレクションがあります。クラスとインターフェースのセットを含むフレームワークである。要素群のコンテナとして機能する。コレクションは、要素の集合を保存、更新、検索することができます。リスト、コレクション、ツリー、マップなどのデータ構造を支援します。リストは、コレクションフレームワークのインタフェースです。arrayListとLinkedListは、コレクションフレームワークの2つのクラスです。コレクションインタフェースとリストインタフェースを実装しています。ArrayListとLinkedListの違いについて説明します。 ArrayListはAbstractListを継承したクラスで、Listインターフェースを実装しており、内部で動的配列を使用してデータ要素を格納します。 LinkedListはAbstractSequentialListを継承したクラスで、Listインターフェースを実装しており、動的配列を使用してデータ要素を格納します。リスト、Deque、Queueインターフェースで、データ要素を格納するために内部でダブルリンクリストを使用します。ここがArrayListとLinkedListの大きな違いです。
1. 概要と主な違い 2. ArrayListとは 3. LinkedListとは 4. ArrayListとLinkedListの類似点 5. 横並びの比較 - 表形式でのArrayListとLinkedList 6. まとめ
ArrayListクラスは、動的な配列を作成するために使用されます。ダイナミックアレイは通常の配列と異なり、サイズが固定されていない。ArrayList クラスを使用して作成されたオブジェクトは、要素のセットをリストに格納することができます。ArrayList クラスは、リストインターフェイスを実装した AbstractList クラスを継承しており、リストに要素を追加できるように、自動的に容量が増加します。その結果、ArrayListはリストインターフェイスのメソッドを使用することができる。要素にアクセスするには get() メソッドを使用します。リストに要素を追加するには add() メソッドを使用します。メソッドは、リストから要素を削除するために使用されます。以下の手順をご覧ください。
図01:ArrayListの例
上記のプログラムを元に、ArrayListオブジェクトを作成します。addメソッドを使用すると、動的に要素を追加することができます。要素 "A"、"B"、"C"、"D"、"E "はaddメソッドで追加されます。「はaddメソッドで追加され、removeメソッドはリストから要素を取り除くために使われます。removeメソッドに4を渡すと、4番目のインデックスにある文字 "E "がリストから削除されます。forループでリストを走査すると、A, B, C, Dの文字が表示される。
ArrayListと同様に、LinkedListはデータ要素を動的に保存するために使用されます。LinkedList クラスを使用して作成されたオブジェクトは、要素の集合をリストに格納することが許可されています。自動的に容量が増えるので、プログラマーはリストに要素を追加することができます。データの保存には、内部でダブルリンクリストを使用する。2重リンクリストでは、データはノードとして格納されます。各ノードには2つのリンクが含まれる。最初のリンクは前のノードを指しています。次のリンクは、シーケンス内の次のノードを指しています。
LinkedList クラスは、AbstractSequentialList クラスを継承し、List インターフェイスを実装しています。get() メソッドはリストの要素にアクセスするために、 add() メソッドはリストに要素を追加するために、 remove() メソッドはリストから要素を削除するために使用されます。以下のプログラムをご参照ください。
図02:LinkedListの例
上記の手順でLinkedListオブジェクトを作成します。addメソッドを使用すると、動的に要素を追加することができます。要素 "A"、"B"、"C"、"D"、"E "は、addメソッドで追加されます。「はaddメソッドで追加され、removeメソッドはリストから要素を取り除くために使われます。removeメソッドに4を渡すと、4番目のインデックスにある文字 "E "がリストから削除されます。forループを繰り返し実行すると、A、B、C、Dの文字が表示されます。
ArrayListとLinkedList | |
ArrayListはAbstractListを継承し、Listインターフェースを実装したクラスで、内部に動的配列を使用してデータ要素を格納する。 | LinkedListはAbstractSequentialListを継承したクラスで、List、Deque、Queueの各インタフェースを実装しており、後者は内部でダブルリンクリストを使用してデータ要素を格納します。 |
エレメントにアクセスする | |
ArrayListの要素へのアクセスは、LinkedListの要素へのアクセスより高速になります。 | LinkedListの要素へのアクセスは、ArrayListへのアクセスより遅い。 |
エレメントを操作する | |
ArrayListの要素を操作するのは、LinkedListよりも遅い。 | LinkedListの要素操作は、ArrayListよりも高速に行えます。 |
ビヘイビア | |
ArrayListはリストとして実行される。 | LinkedListはリストとキューとして実行されます。 |
コレクションフレームワークでは、リスト、ツリー、マップ、コレクションなどのデータ構造を使用することができます。リストは、コレクションフレームワークのインターフェースである。この記事では、AbstractListを継承してListインターフェースを実装したクラスであり、内部で動的配列を使用してデータ要素を格納するArrayListと、AbstractSequentialListを継承してLinkedListインターフェースを実装したクラスであるLinkedListの違いについて説明します。List、Deque、Queueの各インターフェースがあり、後者は内部でダブルリンクリストを使用してデータ要素を格納する。これがArrayListとLinkedListの違いです。