List / Set

go286·2021년 4월 16일
0
post-thumbnail

List, Set 의 개념을 어느정도 알고 있지만 말로는 표현 못한 적이 있어 정리를 해보았다!

1. List

  • 리스트는 배열이 가지고 있는 인덱스라는 장점을 버리는 대신 빈틈없는 데이터의 적재라는 장점을 취한 데이터 스트럭쳐이다.

삭제

  • 아래와 같은 데이터가 있을 때 4번째 엘리먼트인 40을 리스트에서 제외시킨다면 50의 인덱스 값은 4에서 3으로 변경되고 인덱스는 더 이상 식별자로 사용할 수 없다.

  • 만약 배열이라면 아래와 같은 그림으로 40이 없어진 자리가 빈자리로 남는다.
    그렇기 때문에 인덱스가 주민등록 번호처럼 변하지 않는 고유한 값으로 남아있다.

추가

  • 배열에서 인덱스를 유지하면서 40의 자리에 50을 추가하면 아래와 같이 나온다.

  • 리스트에서는 30과 40 사이에 50을 추가하는 것이면 아래와 같이 해야 한다.

결론적으로 리스트는 순서가 있는 엘리먼트의 모음이고 빈 엘리먼트는 허용되지 않는다.

2. Set

  • 데이터를 비순차적으로 저장할 수 있는 순열 자료구조이다.
  • 삽입 순서대로 저장되지 않고, 특정한 순서를 기대할 수 없다.
  • 중복된 값이 허용되지 않는다.
let mySet = new Set(['a','b','c'])

mySet.add('a');
mySet.add('b');
mySet.add('c');

mySet.forEach((vaule) => {
  console.log(value);
});
// output
// a
// b
// c

// 중복 예시
let mySet = new Set(['b','b','c'])

mySet.add('b');
mySet.add('b');
mySet.add('a');

mySet.forEach((vaule) => {
  console.log(value);
});
//output
// b
// c
// a

List와 Set에 대해 정리해보았는데, 앞으로는 List와 Set이 뭐냐고 물어보면 대답할 수 있도록 공부해야겠다.. 다음에 정리할 부분은 Map, Stack, Queue이다.

0개의 댓글