티스토리 뷰
List 란??
특징
- 순서와 중복이 허용되는 자료구조
- 인덱스로 원소에 접근이 가능합니다
- 크기가 가변적입니다.
종류
- LinkedList
- 양방향 포인터 구조로 데이터 삽입, 삭제가 빠릅니다.
- ArrayList보다 검색이 느립ㄴ디ㅏ.
- ArrayList
- 단방향 포인터 구조로 데이터 순차적 접근에 강점을 가집니다.
- 배열을 기반으로 데이터를 저장합니다.
- 데이터 삽입, 삭제가 느립니다.
- 데이터 검색이 빠릅니다.
Map 이란??
특징
- Key와 Value의 한쌍으로 이루어지는 데이터의 집합입니다.
- Key에 대한 중복이 없으며 순서를 보장하지 않습니다.
- 검색 속도가 빠릅니다.
- 인덱스가 따로 존재하지 않기 때문에 iterator를 사용합니다.
종류
- HashMap
- Key에 대한 중복이 없으며 순서를 보장하지 않는다.
- Key와 Value 값으로 Null을 허용합니다.
- 동기화가 보장되지 않습니다.
- 검색에 가장 뛰어난 성능을 가집니다.
- HashTable
- 동기화가 보장되어 병렬 프로그래밍이 가능하고 HashMap보다 처리속도가 느립니다.
- Key와 Value 값으로 Null을 허용하지 않습니다.
- LinkedHashMap
- 입력된 순서를 보장합니다.
- TreeMap
- 이진 탐색 트리를 기반으로 키와 값을 저장합니다.
- Key값을 기준으로 오름차순 정렬되고 빠른 검색이 가능합니다.
- 저장 시 정렬을 하기 때문에 시간이 다소 오래 걸립니다.
SET 이란??
특징
- 데이터의 집합이며 순서가 없고 중복된 데이터를 허용하지 않습니다.
- 중복되지 않은 데이터를 구할 때 유용합니다.
- 빠른 검색 속도를 가집니다.
- 인덱스가 따로 존재하지 않기 때문에 iterator를 사용합니다.
종류
- HashSet
- 인스턴스의 해시값을 기준으로 저장하기 때문에 순서를 보장하지 않습니다.
- Null 값을 허용합니다.
- TreeSet보다 삽입, 삭제가 빠릅니다.
- LinkedHashSet
- 입력된 순서를 보장합니다.
- TreeSet
- 이진 탐색 트리를 기반으로 합니다.
- 데이터들이 오름차순으로 정렬됩니다.
- 데이터 삽입, 삭제에는 시간이 걸리지만 검색, 정렬이 빠릅니다.
정리
List는 기본적으로 데이터들이 순서대로 저장되며 중복을 허용한다.
Map은 순서가 보장되지 않고 Key값의 중복은 허용하지 않지만 Value값의 중복은 허용된다.
Set은 순서가 보장되지 않고 데이터들의 중복을 허용하지않는다.
'Java > 주니어 자바 개발자를 위한 100가지 질문' 카테고리의 다른 글
[Java] 일반 클래스와 추상 클래스의 차이는?? (0) | 2023.06.05 |
---|---|
[Java] 자바(Java)에서 final의 의미, 기능 (0) | 2023.05.25 |
객체 비교시 왜 equals()와 hashcode() 둘 모두를 재정의해야 하는가? (0) | 2023.05.24 |
[JAVA] ==와 equals의 차이 (0) | 2023.05.23 |
JDK와 JRE의 차이점은?? (0) | 2023.05.22 |