배열의 문제점
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]
[Java] Collections - List
List 계열 주요 메서드 ArrayList 실제 배열을 기반으로 구현되어 있지만, 기존의 배열의 불편함만 없앤 컬렉션 List의 후손으로 초기 저장용량은 10으로 자동 설정 / 따로 지정 가능 저장 용량을 초과
atriel.tistory.com
[Set]
[Java] Colletions - Set
List나 Map에 비해 문법이 까다롭고 어려운 편 Set계열 주요 메서드 1. HashSet Hash를 사용하여 속도가 가장빠름 단, 중복 저장을 하지 못함 HashMap을 더 많이 사용함 2.LinkedHashSet HashSet과 비슷하지만 Set
atriel.tistory.com
[Map]
[Java] Collections - Map
해싱? 해시 함수를 통해서 일정한 길이의 값을 뽑아 데이터를 저장, 검색 해쉬 테이블은 배열과 링크드 리스트가 조합된 형태이다. (해싱은.. 보안 포렌식쪽에서만 써봤는데, 자바에서도 쓰이는
atriel.tistory.com
'자바' 카테고리의 다른 글
[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 |
배열의 문제점
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]
[Java] Collections - List
List 계열 주요 메서드 ArrayList 실제 배열을 기반으로 구현되어 있지만, 기존의 배열의 불편함만 없앤 컬렉션 List의 후손으로 초기 저장용량은 10으로 자동 설정 / 따로 지정 가능 저장 용량을 초과
atriel.tistory.com
[Set]
[Java] Colletions - Set
List나 Map에 비해 문법이 까다롭고 어려운 편 Set계열 주요 메서드 1. HashSet Hash를 사용하여 속도가 가장빠름 단, 중복 저장을 하지 못함 HashMap을 더 많이 사용함 2.LinkedHashSet HashSet과 비슷하지만 Set
atriel.tistory.com
[Map]
[Java] Collections - Map
해싱? 해시 함수를 통해서 일정한 길이의 값을 뽑아 데이터를 저장, 검색 해쉬 테이블은 배열과 링크드 리스트가 조합된 형태이다. (해싱은.. 보안 포렌식쪽에서만 써봤는데, 자바에서도 쓰이는
atriel.tistory.com
'자바' 카테고리의 다른 글
[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 |