배열의 문제점
1. 한번 크기를 지정하면 변경할수 없음
- 공간 크기가 부족하면 에러 발생 -> 할당시 넉넉한 크기로 할당하게 됨 (메모리 낭비)
2. 기록된 데이터에 대한 중간위치 추가, 삭제가 불편함
- 추가 삭제시 데이터를 뒤로 밀어내고 추가해야함 (알고리즘이 복잡해짐)
3. 한 타입의 데이터만 저장가능
컬렉션의 장점
1. 저장하는 크기의 제약이 없음
2. 추가, 삭제, 정렬 등의 기능 처리가 간단하게 해결됨
- 자료를 구조적으로 처리하는 자료구조가 내장, 알고리즘 필요 X (코드 생산성 향상)
3. 여러 타입의 데이터 저장가능
주요 인터페이스
List, Set, Map 계열
List 계열 : 순서를 유지하고 저장, 중복저장 가능
Set 계열 : 순서를 유지하지 않고 저장, 중복저장 불가능
Map 계열 : 키와 값의 쌍으로 저장, 키는 중복저장 안됨
대부분 상황에서 ArrayList와 HashMap을 사용함 (제일 빠름, 성능이 좋다)
ArrayList : Thread Safe
(추가, 삭제 기능 향상)
LinkedList
LinkedList를 기반으로 Queue 선언가능
LinkedList 기반으로 TreeMap: 데이터의 정렬 유지 가능
(검색기능을 빠르게 하려할대)
Hash계열 (HashMap, Hastable) 선언
일반적으로 HashMap 사용
베열과 연결된 형태로 검색에서는 최고의 성능을 보임
- 반드시 key와 value로 구성
1. Properties : 파일로 저장 가능한 Map (서버에서 세팅하거나, 언어 번역 데이터를 관리할때 주로 사용)
2. LinkedHashMap : 순서가 유지되는 대신 성능이 저하됨
3. HashSet : 집합, 중복제거
[List]
[Set]
[Map]
'자바' 카테고리의 다른 글
[Java] JDBC (Java DataBase Connectivity) (0) | 2023.11.29 |
---|---|
[Java] I/O 입출력 (0) | 2023.11.23 |
[Java] Collections - Map (0) | 2023.11.23 |
[Java] Collections - List (0) | 2023.11.22 |
[Java] Colletions - Set (0) | 2023.11.22 |