면접 스터디 Day 3 - List, Set, Map, HashMap

jinni·2023년 2월 28일

면접스터디

목록 보기
6/6

List란?

배열은 각 데이터와 인덱스를 1:1 대응하도록 구성되어 있으며, 데이터가 메모리 상에 연속적으로 저장된다. 인덱스를 이용해 데이터에 빠르게 접근할 수는 있지만, 데이터의 추가 및 삭제가 번거로운 편이다. 이유는 배열 생성 시, 미리 최대 길이를 정해서 생성해야 하며, 가변 길이 배열일 경우, 배열의 크기를 변경할 때마다 새로운 배열을 생성해줘야 하기 때문이다. 또한, 데이터 삭제 시, 인덱스를 유지하기 위해 빈 공간이 유지되어 메모리를 잡아먹는다.

Set이란?

Set은 중복되지 않는 원소들의 모임을 나타낸다.
Set의 특징으로는
1. 중복된 데이터를 허용하지 않음.
2. 데이터의 순서를 유지하지 않는다.
3. 검색 속도가 빠르다. -> (해시 테이블 사용)
Set의 구현체로는 HashSet, TreeSet, LinkedHashSet 등이 있다.

Map, HashMap

Map은 key-value 쌍으로 이뤄진 데이터 구조를 나타내는 인터페이스다.
구현체 중 HashMap을 가장 많이 사용하고 있다.
HashMap은 내부적으로 해시 테이블을 사용하여 데이터를 저장한다. 각 key의 해시 코드를 사용하여 해당 key의 value가 저장된 위치를 계산하고, 저장된 위치에 해당 value를 저장한다. 이 과정에서 데이터를 검색하거나, 추가하는 작업의 시간 복잡도는 O(1)이다.

특징

  1. key 중복 X
  2. key, value null 허용
  3. 순서 보장 x
  4. 멀티스레드 환경에서의 불안전
profile
조금씩 천천히 꾸준하게

0개의 댓글