본문 바로가기
BackEnd-Study/JAVA

List, Set, Map 차이점

by ChaeLOTUS 2024. 4. 8.
728x90

 

 

List  : 순서가 있으며, 데이터(값) 중복 허용

Set : 순서가 없으며, 데이터(값) 중복을 허용하지 않음

Map : Key&Value 구조, Key는 중복을 허용하지 않으며, Value는 중복을 허용

 

 

 

Collection

- Java에서 Collection이란 데이터의 집합, 그룹을 의미

- JCF(Java Collection Framework)는 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미

 

 

Collection 주요 인터페이스

-  List, Set, Map

 

 

 

1. List

- 입력 순서를 유지하며, 데이터 중복을 허용

- 인덱스를 통해 저장, 데이터에 접근 가능

 

List 인터페이스의 주요 구현체

- ArrayList

  - 단방향 포인터 구조

  - 데이터 순차적으로 접근(조회)가 빠름

 

- LInkedList

  - 양방향 포인터 구조

  - 데이터 삽입, 삭제가 빠름


2. Set

- 입력 순서를 유지하지 않으며, 데이터의 중복 허용하지 않음

- 데이터에 null입력 가능하나, 한 번만 저장하고 중복 저장을 허용하지 않음

- 인덱스가 따로 존재하지 않기 떄문에 Iterator를 사용하여 조회

 

Set 인터페이스의 주요 구현체

- HashSet

  - 입력 순서를 보장하지 않으며, 데이터의 중복을 허용하지 않음

-  LinkedHashSet

  - 입력 순서를 보장하며, 데이터의 중복을 허용하지 않음

- TreeSet

  - 입력한 데이터의 크기가 비교 가능한 경우 오름차순으로 정렬, 데이터 중복 허용하지 않음

  - 입력하는 데이터가 사용자 정의 객체인 경우 Comparable을 구현하여, 정렬 기준 설정 가능

 


3. Map

- Key&Value 구조

- Key는 입력 순서를 유지하지 않으며, 중복을 허용하지 않음

- Value는 중복을 허용

- 인덱스가 따로 존재하지 않기 때문에 Iterator를 사용하여 조회

 

Map 인터페이스의 주요 구현체

- HashMap

  - Key에 대한 입력 순서를 보장하지 않으며, 중복 Key를 허용하지 않음

- LinkedHashMap

  - Key에 대한 입력 순서를 보장하며, 중복 Key를 허용하지 않음

- TreeMap

  - 레드-블랙트리(Red-Black Tree)를 기반으로 Key&Value를 저장

  - 입력한 Key 데이터의 크기가 비교 가능한 겨우 오름차순으로 정렬되며, 중복 Key를 허용하지 않음

  - 입력하는 데이터가 사용자 정의 객체인 경우 Comparable을 구현하여, 정렬 기준 설정 가능

728x90

'BackEnd-Study > JAVA' 카테고리의 다른 글

객체지향 프로그래밍  (0) 2024.03.05

댓글