BE/Java

[Java] 컬렉션

baek-dev 2024. 12. 4. 20:40

컬렉션은 데이터를 저장하고 관리하기 위한 데이터 구조 클래스인터페이스의 집합.

1. 기본 개념

  • 데이터 그룹(객체들)을 저장하고 조작하는데 사용되는 프레임워크
  • 배열처럼 데이터를 저장하지만 크기가 동적으로 조정되고 다양한 데이터 구조를 제공한다

2. 구조

2.1. 순서가 있는 List

  • 요소들이 순서대로 저장, 중복을 허용
  • 인덱스를 사용하여 요소를 관리

대표 클래스

  • ArrayList : 배열 기반으로 구현, 읽기 성능이 우수
  • LinkedList : 연결 리스트 기반으로 구현, 삽입/삭제 성능이 우수
  • Vector : ArrayList와 비슷하지만 동기화가 지원됨

2.2. 중복이 없는 Set

  • 중복 허용 x
  • 순서가 중요하지 않은 데이터 저장에 사용됨

대표 클래스

  • HashSet : 요소들을 해시기반으로 저장, 순서가 없음
  • LinkedHashSet : 해시기반으로 저장하지만, 삽입 순서 유지
  • TreeSet : 정렬된 순서로 저장 (이진 트리 기반)

2.3. Map (키-값 쌍을 저장)

  • 데이터를 키와 값으로 저장
  • 키는 중복x, 값은 중복o

대표 클래스

  • HashMap : 해시기반의 비 순차적 저장
  • LinkedHashMap : 삽입순서를 유지
  • TreeMap : 키를 정렬된 순서로 저장
요구사항 적합한 클래스
요소의 순서를 유지해야 함 `ArrayList`, `LinkedList`
중복을 허용하지 않음 `HashSet`, `TreeSet`
키-값을 쌍으로 저장해야함 `HashMap`, `TreeMap`
삽입 순서를 유지해야 함 `LinkedHashSet`, `LinkedHashMap`

각각의 자세한 내용은 따로 정리

 

 

 

 

 

출처 : ChatGPT

'BE > Java' 카테고리의 다른 글

[Java] Optional  (0) 2024.12.06
[Java] List  (1) 2024.12.05
[Java] 래퍼 클래스  (0) 2024.12.03
[Java] break, continue, return  (0) 2024.12.02
[Java] 연산자  (0) 2024.12.01