[Java] 컬렉션 프레임워크(Collection Framework)

JoJo·2024년 3월 25일
0
post-thumbnail

✔️ Java Collections Framework 란?

Java에서 컬렉션(collection)이란 데이터의 집합, 그룹을 의미하며, JCK(Java Collection Framework)는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공합니다.

  • Java 컬렉션 프레임워크 상속구조


✔️ Collection 인터페이스의 특징


인터페이스구현 클래스특징
SetHashSet
TreeSet
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.
ListLinkedList
Vector
ArraryList
순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
QueueLinkedList
PriorityQueue
List와 유사
MapHashtable
HashMap
TreeMap
키(Key), 값(Value)의 쌍으로 이루어진 데이터의 집합으로, 순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나, 값(Value)의 중복은 허용한다.

1. Set 인터페이스

순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않습니다.

  • HashSet
    • 가장 빠른 임의 접근 속도
      - 순서를 예측할 수 없음
  • TreeSet
    • 정렬 방법을 지정할 수 있음

2. List 인터페이스

순서가 있는 데이터의 집합으로 데이터의 중복을 허용합니다.

  • LinkedList

    • 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 위치 정보만 수정하면 되기에 유용하다.
    • 스택, 큐, 양방향 큐 등을 만들기 위한 용도로 쓰임.
  • Vector

    • 과거에 대용량 처리를 위해 사용했으며, 내부에서 자동으로 동기화처리가 일어나 성능이 좋지 않고 무거워서 잘 쓰이지 않음.
  • ArrayList
    - 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어남


3. Map 인터페이스

키(Key), 값(Value)의 쌍으로 이루어진 데이터의 집합으로, 순서는 유지되지 않으며 키(Key)dml 중복을 허용하지 않으나, 값(Value)의 중복은 허용합니다.

  • Hashtable
    - HashMap 보다는 느리지만 동기화를 지원함.

    • null 불가
  • HashMap

    • 중복과 순서가 허용되지 않으며 null값이 올 수 있음.
  • TreeMap

    • 정렬된 순서대로 키(Key)와 값(Value)을 지정하여 검색이 빠름.
profile
꾸준히

0개의 댓글