본문 바로가기
백엔드개발자/JAVA

Collection(List, Set), Map

by 보혀니 2022. 4. 7.

 

List

- 순서 있음, 중복 허용

- 크기가 가변 적

  • LinkedList
    • 양방향 포인터 구조로 데이터 삽입, 삭제가 빠르다.
    • ArrayList보다 검색이 느리다. 
  • ArrayList
    • 단반향 포인터 구조로 데이터 순차적 접근에 강점을 가진다.
    • 배열을 기반으로 데이터를 저장한다.
    • 데이터 삽입, 삭제가 느리다.
    • 데이터 검색이 빠르다.

 

Set

- 순서 없음, 중복 없음

  • HashSet
    • 인스턴스의 해시값을 기준으로 저장하기 때문에 순서를 보장하지 않는다.
    • NULL 값을 허용한다.
    • TreeSet보다 삽입, 삭제가 빠르다.
  • LinkedHashSet
    • 입력된 순서를 보장한다.
  • TreeSet
    • 이진 탐색 트리(Red-Black Tree)를 기반으로 한다.
    • 데이터들이 오름차순으로 정렬된다.
    • 데이터 삽입, 삭제에는 시간이 걸리지만 검색, 정렬이 빠르다.

 

 

 

map

- key, value 한짱으로 이루어진 데이터 집합

- key 중복 안됨, 순서보장 안됨

  • HashMap
    • Key에 대한 중복이 없으며 순서를 보장하지 않는다.
    • Key와 Value 값으로 NULL을 허용한다.
    • 동기화가 보장되지 않는다.
    • 검색에 가장 뛰어난 성능을 가진다.
  • HashTable
    • 동기화가 보장되어 병렬 프로그래밍이 가능하고 HashMap 보다 처리속도가 느리다.
    • Key와 Value 값으로 NULL을 허용하지 않는다.
  • LinkedHashMap
    • 입력된 순서를 보장한다.
  • TreeMap
    • 이진 탐색 트리(Red-Black Tree)를 기반으로 키와 값을 저장한다.
    • Key 값을 기준으로 오름차순 정렬되고 빠른 검색이 가능하다.
    • 저장 시 정렬을 하기 때문에 시간이 다소 오래 걸린다.

 

 

 

 

'백엔드개발자 > JAVA' 카테고리의 다른 글

Math 클래스  (0) 2022.05.05
Map  (0) 2022.04.25
Presentation Logic 과 Business Logic  (0) 2022.01.02
인터페이스 (자바의 정석)  (0) 2021.12.08
+ 추상클래스 예제  (0) 2021.12.04