개발 지식 한스푼

JavaScript _ list 와 array

Monstera Olive 2025. 1. 12. 22:59
반응형

 

 

JavaScript에서 흔히 사용되는 용어는 array(배열) 입니다. 그러나 list 라는 용어는 JavaScript의 기본 자료형으로 따로 존재하지 않습니다. list는 보통 프로그래밍의 일반적인 용어로 연걸 리스트(Linked List)를 의미하거나, 특정 프레임워크/라이브러리(ex_python, java)에서 리스트 타입을 지칭하는 경우에 사용됩니다. JavaScript에서는 array가 순서가 있는 값들의 집합을 저장하기 위한 기본적인 데이터 구조입니다. 따라서 JavaScript에서는 리스트 타입이 아닌, 배열(Array)을 사용해 리스트처럼 동작하는 구조를 구현할 수 있습니다.

 

 

Array(배열)의 특징

  • 배열은 순서가 있는 값들의 집합을 저장합니다.
  • 각 값은 인덱스로 접근할 수 있습니다. 인덱스는 0부터 시작합니다.
  • 배열은 동적 크기를 가지며, 언제든 요소를 추가하거나 제거할 수 있습니다.
  • 배열에는 숫자뿐만 아니라 문자열, 객체 등 모든 데이터 타입을 저장할 수 있습니다.
const arr = [1, 2, 3, 4, 5];

console.log(arr[0]);               // 1
console.log(arr.length);        // 5

 

 

List와 Array의 개념적 차이

배열(Array)

연속적인 메모리 공간에 데이터를 저장합니다.

고정된 길이를 가진 배열도 있지만, JavaScript의 배열은 크기가 동적으로 조정됩니다.

 

연결 리스트(Linked List)

각 요소가 다음 요소를 가리키는 포인터를 포함하여 노드(node) 형태로 저장됩니다.

요소가 메모리상에 연속적으로 배치되지 않고, 링크로 연결되어 있습니다.

 

 

JavaScript에서 연결 리스트 구현하기

JavaScript 배열은 이미 리스트처럼 동작하지만, 연결 리스트를 수동으로 구현 할 수도 있습니다.

 

class Node {
    constructor(value) {
        this.value = value;
        this.next = null;
    }
}

class LinedList {
    constructor() {
        this.head = null;
    }

    add(value) {
        const newNode = new Node(value);

        if (!this.head) {
            this.head = newNode;
        } else {
            let current = this.head;

            while (current.next) {
                current = current.next;
            }
            current.next = newNode;
        }
    }

    display() {
        let current = this.head;

        while (current) {
            console.log(current.value);
            current = current.next;
        }
    }
}

const list = new LinkedList();
list.add(1);
list.add(2);
list.add(3);
list.display();      // 1, 2, 3

 

 


 

 

JavaScript에서는 기본적으로 array를 사용하여 리스트처럼 데이터를 저장하고 관리합니다. list라는 용어는 JavaScript의 기본 자료형으로는 존재하지 않지만, 배열을 통해 리스트의 기능을 구현 할 수 있습니다. 또한, 연결 리스트와 같은 자료 구조를 직접 구현 할 수도 있습니다. 따라서 JavaScript에서 리스트 관련 개념을 다룰 때는 Array를 잘 이해하고 활용하는 것이 중요합니다.

반응형