HOWTO · Java
Java のリンクリストの配列
この記事では、Java のリンクリストの配列を紹介します。
このページの内容
LinkedList は、定義された順序で要素を格納する順次線形データ構造です。データ構造は Collection インターフェースの一部であり、java.util パッケージに含まれています。
リンクリストには、ノード部分に格納されている要素もあります。各ノードには、要素ストレージ用のデータ部分と、次のノードのアドレスを保持するためのポインタがあります。リスト内の要素は、連続するメモリ位置に存在しません。
Java の従来の配列を使用してリンクリスト配列をデモンストレーションする
以下は、ループを使用してリンクリストの配列を作成するコードブロックです。
import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
LinkedList[] list = new LinkedList[5];
for (int i = 0; i < 5; i++) {
if (list[i] == null) {
list[i] = new LinkedList();
int temp = i;
for (int j = 0; j < temp + 1; j++) {
list[i].add(j);
}
}
System.out.print(list[i]);
}
}
}
上記のブロックでは、new LinkedList[5] ステートメントがリンクリストを作成します。new キーワードは、クラスリンクリストのパブリックコンストラクターを呼び出します。値 5 は配列のサイズを示しているため、5つのリンクリストの配列を作成します。
リスト変数に対して、ループが実行され、各ノード上で新しいリンクリストがインスタンス化されます。したがって、for ループは、5 未満の整数値の条件で適用され、実行を開始します。内部的には、ノードの値が null であるかどうかの条件をチェックします。それ以外の場合は、新しいリンクリストノードがインスタンス化されます。
ここでも、for ループを使用してリスト内の要素を埋めます。add メソッドは、リストの最後に要素を追加するために使用されます。このメソッドは LinkedList クラスからのものであり、boolean 値を返します。add 関数が正常に実行された場合は true を返し、それ以外の場合は false を返します。
同様に、反復が続行され、各ノードの値がリンクリストで埋められます。ノードに存在する要素をチェックするために、同じことがループ内にも出力されます。
出力:
[0][0, 1][0, 1, 2][0, 1, 2, 3][0, 1, 2, 3, 4]
Java のコンストラクターを使用してリンクリスト配列をデモンストレーションする
以下は、Java 8 の機能を使用してリンクリストの配列を作成するコードブロックです。
import java.util.ArrayList;
import java.util.LinkedList;
public class main {
public static void main(String[] args) {
LinkedList list1 = new LinkedList<String>();
list1.add("l1_value1");
list1.add("l1_value2");
LinkedList list2 = new LinkedList();
list2.add("l2_value1");
list2.add("l2_value2");
LinkedList list3 = new LinkedList();
list3.add("l3_value1");
list3.add("l3_value2");
ArrayList<LinkedList> arrayList = new ArrayList<LinkedList>();
arrayList.add(list1);
arrayList.add(list2);
arrayList.add(list1);
arrayList.forEach(System.out::println);
System.out.println("Classname: " + arrayList.get(0).getClass());
}
}
上記のコードブロックでは、main メソッドがコード実行の実際のロジックを保持しています。
まず、new キーワードを使用してリンクリストを作成します。このキーワードは、LinkedList クラスのパブリックコンストラクターを呼び出します。文字列値がリストに挿入されます。同様に、別の 2つのリストが作成されます。
最後に、配列リストがインスタンス化されます。形成されたリスト変数は、配列リストインスタンスに追加されます。リストインスタンスの反復は、forEach 関数を使用して行われます。さらに、メソッド参照演算子::を含む print ステートメントが追加され、配列リストに存在するインスタンスタイプの名前が表示されます。
上記のプログラムの出力を以下に示します。
[l1_value1, l1_value2][l2_value1, l2_value2][l1_value1, l1_value2] Classname
: class java.util.LinkedList