1. 컬렉션 프레임워크 (Collection Framework)
0) 컬렉션(Collection) -> 여러 객체(데이터를 모아놓은 것)
프레임워크(Framework) -> 표준화, 정형화된 체계적인 프로그래밍 방식
1) 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공된 것
2) 컬렉션은 배열의 문제점을 해결하기 위해서 나옴.
3) 배열의 문제점
- 처음 선언할 때 배열의 크기가 결정되고, 한번 결정되면 바꿀 수 없음.
=> 불특정 다수의 객체를 저장하기에는 문제가 됨.
- 객체를 삭제했을 때 해당 인덱스가 비어있게 됨.
=> 객체를 저장하려면 어디가 비어있는지 확인하는 코드가 추가로 필요함.
4) 컬렉션 프레임워크
- 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 컬렉션 라이브러리
- java.util 패키지에 포함.
- 인터페이스를 통해서 정형화 된 방법으로 다양한 컬렉션 클래스를 이용. (ArraryList, Vector, HashSet 등)
2. 컬렉션 프레임워크 주요 인터페이스
1) List : 배열과 유사하게 인덱스로 관리
[0] | [1] | [2] | ....... |
값1 | 값2 | 값3 | ....... |
2) Set : 집합과 유사한 형태로 관리 (한 곳에 값이 모여있음)
3) Map : 키와 값의 쌍으로 관리
KEY1 | KEY2 | KEY3 | ..... |
값1 | 값2 | 값3 | ..... |
3. 각 인터페이스의 특징
1) List 계열
- 객체를 일렬로 늘어놓은 구조 (그 순서를 유지하고 저장)
- 객체를 인덱스로 관리하기 때문에 저장하면 자동으로 인덱스가 부여
- 객체 자체를 저장하지 않고 객체의 번지를 참조하고, 그 번지가 객체를 가리키게 됨.
- 동일한 객체의 중복 저장 가능
- 구현 클래스 : ArrayList, Vector, LinkedList
2) Set 계열
- 순서를 유지하지 않고 저장
- 객체 중복 저장 안됨
- 구현 클래스 : HashSet, TreeSet
3) Map 계열
- 키와 값의 쌍으로 구성된 Entry 객체를 저장하는 구조
- 구현 클래스 : HashMap, Hashtable, TreeMap, Properties
참고 : [한빛미디어] 이것이 자바다 (신용권의 Java 프로그래밍 정복) Chapter 15.컬렉션 프레임워크
참고 : [도우출판] JAVA의 정석(3ND EDITION)-자바의 정석 최신 Java 8.0 포함 Chapter 11.컬렉션 프레임워크
'JAVA' 카테고리의 다른 글
Set 컬렉션 (HashSet, TreeSet) (0) | 2022.08.28 |
---|---|
List 컬렉션 (0) | 2022.08.28 |
람다식 (Lambda Expression) (0) | 2022.08.28 |
생성자 super() vs 참조변수 super (0) | 2022.08.28 |
상속과 포함 (0) | 2022.08.28 |
댓글