컬렉션은 객체를 수집해서 저장하는 역할을, 프레임워크는 사용방법을 미리 정해놓은 라이브러리를 말합니다. 자바의 컬렉션 프레임워크는 인터페이스를 통해 다양한 컬렉션 클래스를 이용할 수 있도록 합니다.
컬렉션 프레임워크는 아래 그림과 같이 계층구조로 구성되어있습니다. Collection이라는 가장 상위 인터페이스를 상속받는 List, Set, Queue가 있으며, Map은 key와 value값을 하나의 쌍으로 묶어 관리하는 구조로 되어있기 때문에 Collection인터페이스와 별도로 정의됩니다.
1. List
List는 객체를 일렬로 늘어놓은 구조를 가지고 있으며 객체를 인덱스로 관리하기 때문에 인덱스로 객체를 검색, 삭제할 수 있습니다. Collection인터페이스를 상속받기 때문에 Collection인터페이스의 모든 메서드들을 포함하고 있습니다.
2. Set
Set인터페이스는 List와 같이 Collection인터페이스를 상속받습니다. 하지만 List는 중복을 허용하고 인덱스를 통해 객체를 관리하는 반면, Set은 중복을 허용하지 않으며 인덱스를 사용하지 않습니다(순서대로 관리하지 않음).
(+) Set은 인덱스가 없기 때문에 전체 객체를 대상으로 한 번씩 반복해서 가져오는 반복자(Iterator)를 제공함.
3. Map
Map은 key와 value를 짝을 이뤄 객체를 저장하는 구조를 가지고 있습니다. key와 value모두 객체이며 key는 중복 저장될 수 없지만 value는 중복 저장될 수 있습니다. 또한 (인덱스 관리가 아니므로) 저장순서를 유지하지 않기 때문에 객체 관리는 key를 통해 하게됩니다.
+) 참고
'STUDY > Java' 카테고리의 다른 글
Java | 추상클래스(abstract class) / 인터페이스(Interface) (0) | 2020.05.18 |
---|---|
Java | 접근 제어자/접근 제한자 ( Access Modifier ) (0) | 2020.05.14 |
Java | 객체 지향 프로그래밍(OOP : Object Oriented Programming)의 주요 개념 (0) | 2020.05.14 |
Java | 배열 오름차순 / 내림차순 정렬하기 ( Arrays.sort() ) (0) | 2020.04.27 |
Java | 자바 가상 머신 JVM(Java Virtual Machine) (0) | 2020.04.22 |