day 1 : [JAVA 자료구조] Collection과 Map

natuure·2021년 9월 14일
2

Study-dataStructure

목록 보기
1/1

Collection과 Map

자료구조는 크게 Collection과 Map으로 나눌 수 있다.
Collection에는 Set, List, Queue로 구성되어 있다.

# Collection

  • List : 순서가 있는 저장공간
  • Set : 집합적인 저장공간
  • Queue : FIFO 구조

# Map

  • Key와 Value로 이뤄진 데이터 집합


1. Set

순서를 보장하지 않고, 중복이 허용되지 않는 데이터 집합

  • HashSet
  • LinkedHashSet
  • TreeSet

  • 1.1. HashSet

    ▫ 순서를 가지지 않고, 중복을 허용하지 않는다.
    ▫ 대표적으로 많이 사용하는 집합 자료구조이다.

    1.2. LinkedHashSet

    ▫ 순서를 가지고, 중복을 허용하지 않는다.
    ❗ Set의 특징과 달리, LinkedHashSet은 순서를 가진다.

    1.3. TreeSet

    ▫ 순서를 가지지 않고, 중복을 허용하지 않는다.
    ❗ 하지만, TreeSet은 데이터를 정렬하여 저장한다.


    2. List

    순서를 보장하고, 중복이 허용되는 데이터 집합

  • ArrayList
  • LinkedList
  • Vector
  • Stack

  • 2.1. ArrayList

    ▫ 배열을 이용한 리스트
    ▫ 조회가 빠르지만, 삽입 및 삭제가 느리다.

    ❗ 동기화를 지원하지 않는다.

    2.2. LinkedList

    ▫ Node와 Pointer를 이용한 리스트
    ▫ Pointer의 노드 연결로 인해 삽입 및 삭제가 빠르지만, 조회는 첫 노드부터 탐색하기 때문에 느리다.

    *Node는 next와 prev로 양방향 포인터를 가진다.

    2.3. Vector

    ▫ 배열을 이용한 리스트
    ❗ ArrayList와 달리, 동기화를 지원한다.

    2.4. Stack

    ▫ LIFO(Last-In-First-Out) 특성을 가지는 자료구조
    ▫ 마지막에 들어온(Push) 데이터가 처음으로 나가는(Pop) 특징이 있다.

    ❗ ArrayList와 Vector의 차이점

    • 동기화 지원 여부

    3. Map

    순서를 가지지 않고, Key와 Value로 이루어진 데이터 집합
    Key의 중복은 허용하지 않고, Value의 중복은 허용한다.

  • HashMap
  • Hashtable
  • LinkedHashMap
  • TreeMap

  • 3.1. HashMap

    ▫ 일반적으로 많이 사용하는 Map 자료구조이다.
    ▫ 순서를 보장하지 않는다.
    ▫ Key의 중복은 허용하지 않고, Value의 중복은 허용한다.
    ▫ Key를 통해서 Value의 값을 얻을 수 있다.

    ❗ 동기화를 지원하지 않는다.
    ❗ Key값과 Value값에 null이 허용된다.

    3.2. Hashtable

    ▫ 순서를 보장하지 않는다.
    ▫ Key의 중복은 허용하지 않고, Value의 중복은 허용한다.
    ▫ Key를 통해서 Value의 값을 얻을 수 있다.

    ❗ HashMap과 달리, 동기화를 지원한다.
    ❗ HashMap과 달리, Key값과 Value값에 null이 허용되지 않는다.

    3.3. LinkedHashMap

    ▫ Key의 중복은 허용하지 않고, Value의 중복은 허용한다.
    ▫ Key를 통해서 Value의 값을 얻을 수 있다.

    ❗ Map의 특징과 달리, 들어온 순서대로 순서를 유지한다.

    3.4. TreeMap

    ▫ 순서를 가지지 않고, 중복을 허용하지 않는다.

    ❗ 하지만, TreeMap은 데이터를 정렬하여 저장한다.
    ❗ 정렬한 뒤 저장하기 때문에 다른 자료구조에 비해 오래 걸린다.

    이진트리로 구성되어 있고, 저장시 Key기준으로 오름차순으로 저장된다.


    ❗ HashMap과 Hashtable의 차이점

    • Key와 Value의 null허용 여부
    • 동기화 지원여부이다.

    4. Queue

    FIFO(First-In-First-Out) 구조를 가지는 자료구조
    처음 들어온(enqueue) 데이터가 처음으로 나가는(dequeue) 특징을 가진다.

  • PriorityQueue
  • ArrayDeque

  • 4.1. PriorityQueue

    ▫ 이진트리 구조를 가진다.
    ▫ 데이터에 우선순위를 부여하여 높은 순으로 먼저 반환한다.

    4.2. ArrayDeque

    ▫ 양쪽으로 넣고(enqueue) 빼는 것(dequeue)이 가능하다.


    5. List, Set, Map 차이점

    5.1. List와 Set

    • List는 순서를 보장하고, 중복을 허용한다.
    • Set은 순서를 보장하지 않고, 중복을 허용하지 않는다.

    ❗ List와 Set은 서로 반대 개념

    5.2. List와 Map

    • List는 순서를 보장하고, 중복을 허용한다.
    • Map은 순서를 보장하지 않는다.
      Key의 중복을 허용하지 않고, Value의 중복을 허용한다.

    5.3. Set과 Map

    • Set은 순서를 보장하지 않고, 중복을 허용하지 않는다.
    • Map은 순서를 보장하지 않는다.
      Key의 중복을 허용하지 않고, Value의 중복을 허용한다.
    profile
    🌈 Mobile Application Developer

    0개의 댓글