카테고리 없음

자료구조 - Map

Dahoon06 2023. 10. 29. 00:54
728x90
반응형

Key와 Value가 한 쌍으로 이루어진 자료구조

  • 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통하여 Value를 얻는다.
  • Value 는 중복될 수 있지만, Key는 고유한 값을 가져야한다.
  • Map은 저장 순서를 유지할 필요가 없고, Key를 통하여 Value를 얻어내기 때문에 Key는 중복을 허용하지 않는다.

 

자바스크립트 Map 객체 생성

const map1 = new Map(); // 방법 1. 비어있는 Map 객체 생성


const mockData = [['key1','value1'],['key2','value2'],['key3','value3']];
const map2 = new Map(mockData); // 방법 2. Map 객체에 초기값 할당하여 생성

console.log(map2)

Map에 값을 저장할 때에는 [key, value] 형식으로 저장하는 것이 일반적

 

const mockData = [['key1','value1'],['key1','value2'],['key3','value3']];
const map2 = new Map(mockData); // 방법 2. Map 객체에 초기값 할당하여 생성

console.log(map2)

중복된 key 로 값이 할당된다면 마지막에 들어온 키, 값으로 덮어씌워진다.

 

자바스크립트 특성상 key와 value 둘 다 객체가 될 수 있다.

 

const mockData = [
    ['1',{objKey1: 'value1'}],
    ['2',{objKey2: 'value2'}],
    [{objKey3: 'value3'},{objKey3: 'value3'}],
];
const map = new Map(mockData); // 방법 2. Map 객체에 초기값 할당하여 생성

console.log(map)

 

 

JavaScript Object VS Map

 

  • Object 키는 String이며, Map의 키는 모든 값을 가질 수 있다.
  • Object는 크기를 수동으로 추적해야하지만, Map은 크기를 쉽게 얻을 수 있다.
  • Object는 입력 순서에 따라 출력 순서가 보장되지 않지만, Map은 입력 순서가 보장된다.
  • Object 에는 prototype이 있어 Map에 기본 키들이 있다.
  • Iterator Interface 구현 여부 (Object 없음, Map은 Iterator 존재)

 

 

728x90
반응형