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
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn