- 컬렉션
- 자바에서 제공하는 자료구조를 담당하는 프레임워크
- 배열에 데이터를 담아 관리하는 방법에서 자료구조를 적용하여 좀 더 효율적으로 데이터를 관리할 수 있도록
다양한 기능 제공
- 구현된 자료구조 종류에 따라 List, Set, Map 등으로 분류하여 제공
- 배열 vs 컬렉션
배열 특징
- 한 번 크기를 정하면 변경할 수 없다.
- 배열에 저장된 데이터의 추가/수정/삭제 과정이 불편하다.
- 한 가지 타입에 대해서만 저장할 수 있다. (but, 다형성 사용하면 여러타입 저장 가능)
컬렉션 특징
- 언제든 크기를 늘리거나 줄일 수 있다.
- 컬렉션에 저장된 데이터의 추가/수정/삭제 등의 과정은 기본 제공되는 메서드로 처리 가능하다.
- 여러 타입에 대한 데이터 저장이 가능하다.
- List 계열 컬렉션 (배열과 거의 유사)
- 데이터를 순차적으로 나열한 자료구조로 되어 있으며, 인덱스로 관리한다.
- 중복 데이터 저장 가능
- 구현 클래스로는 ArrayList, Vector, LinkedList 가 있다.
1. ArrayList
- List 의 구현체로 초기 저장 용량 10 에서 데이터가 추가/삭제 될 때마다 자동으로 늘어나거나 줄어들면서 관리
- Thread Safe 기능을 제공하지 않는다
2. Vector
- ArrayList 와 동일하며, Thread Safe 기능을 제공한다.
3. LinkedList
- 특정 위치에 데이터를 추가하거나 제거 하면 앞/뒤 노드의 링크 정보만 변경하는 형태로 동작하며 이로 인해
빈번한 데이터의 추가/수정에 가장 우수한 성능을 갖는다.
* 사용자 정의 객체를 리스트에 사용할 수도 있다.
- Set 계열 컬렉션
- 저장 순서를 유지하지 않는다.
- 중복 허용 x
- 구현 클래스로 HashSet, LinkedHashSet, TreeSet 등이 있다.
1. HashSet
- 객체를 저장할 때 hash 함수를 사용하여 처리 속도가 빠르다.
- 동일 객체 뿐 아니라 동등 객체도 중복하여 저장하지 않는다 (객체 주소, 값 둘 다 중복 허용x)
2. LinkedHashSet
- HashSet 과 동일하지만 Set 에 추가되는 데이터들의 순서가 유지됨
3. TreeSet
- 검색 기능을 강화한 컬렉션으로 계층 구조를 활용해 이진 트리 자료구조로 구현되어 있다.
# 위의 List 컬렉션과 메서드 사용방식이 동일하나 Set 컬렉션에서는 수정 메서드가 따로 존재하지 않는다.
'국비' 카테고리의 다른 글
11.3 국비학원 22일차 (네트워크 프로그래밍 UDP/TCP) (0) | 2022.11.04 |
---|---|
11.2 국비학원 21일차 (컬렉션 : Map) (0) | 2022.11.03 |
10.31 국비학원 19일차 (입출력 스트림) (0) | 2022.11.01 |
10.28 국비학원 18일차 (예외처리) (0) | 2022.10.30 |
10.27 국비학원 17일차(StringBuilder,StringBuffer클래스, Wrapper클래스, 날짜 클래스) (0) | 2022.10.29 |