hayu's 개발 일지

[TIL]240410 JAVA Collection 본문

기술/java

[TIL]240410 JAVA Collection

hayu00 2024. 4. 10. 21:09

Collection 란?

  • java 에서 컬렉션(Collection)은 데이터의 집합, 그룹을 의미한다.
  • JCF(Java Collections Framework)는 이러한 데이터, 자료구조인 컬렉션과 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다.
  • Collection 인터페이스는 List, Set, Queue로 크게 3가지 인터페이스로 분류할 수 있다. Map의 경유 컬렉션 인터페이스를 상속받고 있지 않지만 컬렉션으로 분류된다.

Collection 종류

Set 인터페이스

구현 클래스 :

HashSet - 접근 속도가 가장 빠르다. 순서를 예측할 수 없다.

TreeSet - 정렬 방법을 지정할 수 있다.

  • 특징 : 순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.

List 인터페이스

구현 클래스 :

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

Vector - 과거에 대용량 처리를 위해 사용했다. 내부에서 자동 동기화처리가 일어나 비교적 성능이 좋지 않고 무거워 잘 쓰이지 않는다.

ArrayList - 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어나다.

  • 특징 : 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.

Queue 인터페이스

구현 클래스 : LinkedList, PriorityQueue

  • 특징 : List 유사하다. FIFO(FIFO : First In First Out) 방식으로 관리한다.

Map 인터페이스

구현 클래스 :

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

HashMap - 중복과 순서가 허용되지 않으면 null 값이 올 수 있다.

TreeMap - 정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠르다.

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

Stack

  • 특징 : LIFO(LIFO : Last In First Out) 방식으로 관리한다.

 

참고 자료

- https://gangnam-americano.tistory.com/41

- https://kadosholy.tistory.com/117

- https://inpa.tistory.com/entry/JCF-%F0%9F%A7%B1-Collections-Framework-%EC%A2%85%EB%A5%98-%EC%B4%9D%EC%A0%95%EB%A6%AC

'기술 > java' 카테고리의 다른 글

[TIL]240417 열거형(enum)  (0) 2024.04.17
[TIL]240416 wrapper 클래스  (0) 2024.04.16
[TIL]240408 Scanner 클래스  (1) 2024.04.08
[TIL]240406 Set  (0) 2024.04.06
[TIL]240403 Map  (0) 2024.04.03