Java의 연결 리스트 배열

Rashmi Patidar 2023년10월12일
  1. Java에서 기존 배열을 사용하여 연결 목록 배열 시연
  2. Java에서 생성자를 사용하여 연결 목록 배열 시연
Java의 연결 리스트 배열

LinkedList는 요소를 정의된 순서로 저장하는 순차 및 선형 데이터 구조입니다. 데이터 구조는 Collection 인터페이스의 일부이며 java.util 패키지에 있습니다.

연결 목록에는 node 부분에 저장된 요소도 있습니다. 각 노드에는 요소 저장을 위한 data 부분과 다음 노드의 주소를 유지하기 위한 pointer가 있습니다. 목록의 요소가 인접한 메모리 위치에 없습니다.

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인지 조건을 확인합니다. 그렇지 않으면 새로운 Linked List 노드가 인스턴스화됩니다.

다시, 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 클래스의 공용 생성자를 호출합니다. 문자열 값이 목록에 삽입됩니다. 마찬가지로 또 다른 두 개의 목록이 생성됩니다.

마지막으로 배열 목록이 인스턴스화됩니다. 형성된 목록 변수는 배열 목록 인스턴스에 추가됩니다. 목록 인스턴스의 반복은 forEach 함수를 사용하여 발생합니다. 또한 메소드 참조 연산자 ::가 있는 print 문이 어레이 목록에 있는 인스턴스 유형의 이름을 표시하기 위해 추가되었습니다.

위 프로그램의 출력은 아래와 같습니다.

[l1_value1, l1_value2][l2_value1, l2_value2][l1_value1, l1_value2] Classname
    : class java.util.LinkedList
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