Java のリンクリストの配列

Rashmi Patidar 2023年10月12日
  1. Java の従来の配列を使用してリンクリスト配列をデモンストレーションする
  2. 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
著者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

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

関連記事 - Java Linked List

関連記事 - Java Array