개발새발 로그

[2023-09-22] TIL - 배열, 순차리스트(Array) 본문

TIL

[2023-09-22] TIL - 배열, 순차리스트(Array)

이즈흐 2023. 9. 22. 15:00

 

변수를 선언하면 메모리상에 데이터가 저장된다.

변수를 통해 데이터를 꺼내쓰거나 덮어씌울 수 있다.

 

 

만약 연관된 데이터를 하나의 변수에 처리하기 위해서는 배열을 사용해야한다.

 

배열

-연관된 데이터를 연속적인 형태로 구성된 구조를 가진다.

-배열에 포함된 원소는 순서대로 번호(index)가 붙는다.

 

배열의 특징

- 고정된 크기를 가지며 동적으로 크기를 늘릴 수 없다.

 -> 하지만 자바스크립트 처럼 대부분의 스크립트 언어는 동적으로 크기가 증감되도록 만들어져 있다.

- 원하는 원소의 index를 알고 있다면 O(1)로 원소를 찾을 수 있다.

- 원소를 삭제하면 해당 index에 빈자리가 생긴다.

 

 

만약 배열의 중간의 요소를 추가하거나 삭제하고 빈자리를 채우게된다면 O(n)이 소요된다.

따라서 추가삭제가 반복되는 로직이라면 배열 사용을 권장하지 않는다.

배열은 탐색이 더 많은 경우에 유리한 자료구조이다.

 

 

Javascript에서 배열 사용법

// 빈 Array를 생성
let arr1=[];

// 미리 초기화된 Array를 생성
let arr2 = {1,2,3,4,5};

// 많은 값을 같은 값으로 초기화할 경우 fill을 사용
let arr3 = Array(10).fill(0);

// 특정 로직을 사용하여 초기화할 경우 from을 사용
let arr4 = Array.fro,({length : 100}, (_, i) => i);

 

특이점

1. 자바스크립트의 Array는 동적이다,

const arr = [];
arr.push(1);
arr.push(2);
console.log(arr); // 1, 2

2. 자바스크립트의 Array는 HashMap에 가깝다. index가 number가 아니어도 된다.

-자바스크립트의 배열이 근본적으로 Object이기 때문이다.

arr["string"] = 10;
arr[false] = 0;
console.log(arr) // [ string ; 10, false : 0]
console.lgo(arr.length) // 0  -> index와 무관한 값을 index로 사용한 경우 길이에 영향을 미치지않는다.

- 사용하지않는 것을 추천한다.

728x90
반응형
LIST