List, Set, Map, HashMap의 차이

Kim Dong Kyun·2023년 3월 30일

개요

이전 시간에 이미 Map과 HashMap, 그리고 HashTable 게시글을 통해서 Map 인터페이스를 상속받는 HashMap, 그리고 HashTable을 비교 설명하면서 Hash 개념까지 알아봤습니다. 오늘 다시 요청을 받아서, List/Set/Map/HashMap을 간단히 비교설명 합니다.

1. List

  • List는 순서가 있는 데이터의 모음입니다.

중복을 허용하며, 인덱스를 사용하여 요소에 접근할 수 있습니다.

삽입/삭제 O(n), 조회 O(1)

ArrayList, LinkedList, Vector 등이 있습니다.

2. Set

Set은 중복을 허용하지 않는 순서가 없는 데이터의 모음입니다.
Set 인터페이스는 Collection 인터페이스를 상속합니다.

삽입, 삭제, 조회 : TreeSet 등 정렬된 Set은 O(log n), HashSet은 O(1)(해쉬 테이블을 사용하기 때문입니다)

HashSet, TreeSet 등이 있습니다.

3. Map

Map은 Key-Value 쌍의 객체를 저장하는 데이터 구조입니다.
순서는 유지되지 않으며, 중복된 Key를 가질 수 없습니다.

삽입/삭제/조회: O(log n) - TreeMap 등 정렬된 Map은 O(log n), HashMap은 O(1)로 해시테이블을 사용하므로 평균적으로 O(1)입니다.

HashMap, TreeMap, LinkedHashMap 등이 있습니다.

4. HashMap

HashMap은 Key-Value 쌍의 객체를 저장하는 데이터 구조입니다.
순서는 유지되지 않으며, 중복된 Key를 가질 수 없습니다.
Hashtable과는 달리, 동기화를 지원하지 않습니다.
null을 key나 value로 저장할 수 있습니다.

삽입/삭제/조회: O(1)

성능이 좋아 대용량 데이터 처리에 적합합니다.

1개의 댓글

comment-user-thumbnail
2023년 3월 30일

.

답글 달기