[CS] Data Structure Part.7 Set and Map

Hwichan Ji·2020년 11월 11일
0

CS-자료구조

목록 보기
7/7
post-thumbnail

Set

Set이란?

Set은 List와 달리 순서를 유지하지 않고 데이터의 중복을 허용하지 않는 자료구조로 집합을 표현하기 위해서 사용합니다. Java Collection Framework에서 Set은 Collection 인터페이스를 상속받은 인터페이스 중 하나이며 이를 구현한 클래스로는 HashSet , TreeSet , LinkedHashSet 등이 있습니다.

Java Collection Framework

Java Collection Framework출처: Java Document - Collections Framework Overview

Java Set Class

HashSet

HashSet은 Hash Table을 이용하여 Set을 구현한 클래스로 TreeSet, LinkedHashSet과 달리 데이터의 순서가 없어 가장 성능이 좋습니다.

TreeSet

TreeSet은 Red-Black Tree를 이용하여 Set을 구현한 클래스로 저장된 데이터의 값에 따라 데이터가 정렬된다는 특성을 갖고 있습니다.

LinkedHashSet

LinkedHashSet은 HashSet를 상속받아 Set을 구현한 클래스로 HashSet과 달리 데이터의 저장 순서를 기록한 Linked List를 유지하고 있어 데이터 간의 순서가 존재합니다. 따라서 셋 중에서 가장 성능이 떨어집니다.

Map

Map은 KeyValue 의 쌍으로 이루어진 데이터를 저장하는 자료구조로 Set처럼 데이터의 순서가 유지되지 않습니다. Key 의 중복은 허용되지 않으나 Value 의 중복은 허용됩니다. Java Collection Framework에서 Map을 구현한 클래스로는 HashMap , HashTable , TreeMap, LinkedHashMap 등이 있습니다.

Java Map Class

HashMap

HashMap은 Hash Table을 이용하여 Map을 구현한 클래스로 데이터의 순서를 유지하지 않습니다. HashTable Class와 달리 KeyValueNULL 값이 허용되지만 Thread Safe하지 않습니다.

HashTable

HashTable은 Hash Table을 이용하여 Map을 구현한 클래스로 HashMap과 달리 KeyValueNULL 값이 허용되지 않습니다. HashMap보다 느리지만 동기화를 지원하기 때문에 Tread Safe합니다.

TreeMap

TreeMap은 Red-Black Tree를 이용하여 Map을 구현한 클래스로 정렬된 순서KeyValue 의 쌍을 저장하기 때문에 빠른 탐색이 가능합니다.

LinkedHashMap

LinkedHashMap은 HashMap를 상속받아 Map을 구현한 클래스로 HashMap과 달리 데이터의 저장 순서를 기록한 Linked List를 유지하고 있어 데이터 간의 순서가 존재합니다.

profile
안드로이드 개발자를 꿈꾸는 사람

0개의 댓글