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 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