컬렉션 프레임워크란, 데이터 군을 저장하는 클래스들을 표준화한 설계를 뜻한다. 컬렉션(Collection)은 다수의 데이터, 즉 데이터 그룹을, 프레임워크는 표준화된 프로그래밍 방식을 의미한다. JDK1.2 이전까지는 Vector, Hashtable, Properties와 같은 컬렉션 클래스, 다수의 데이터를 저장할 수 있는 클래스, 들을 서로 다른 각자의 방식으로 처리해야 했으나 JDK1.2부터 컬렉션 프레임워크가 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화되었다.
컬렉션 프레임워크는 컬렉션, 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 ㅈ[공하기 때문에 프로그래머의 짐을 상당히 덜어 주고 있으며, 또한 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화되어 있기 때문에 사용법을 익히기에도 편리하고 재사용성이 높은 코드를 작성할 수 있다는 장점이 있다.
1. 컬렉션 프레임워크의 핵심 인터페이스
컬렉션 프레임워크에서는 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다. 그리고 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. 인터페이스 List와 Set을 구현한 컬렉션 클래스들은 서로 많은 공통부분이 있어서, 공통된 부분을 다시 뽑아 Collection 인터페이스를 정의할 수 있었지만 Map인터페이스는 이들과는 전혀 다른 형태로 컬렉션을 다루기 때문에 같은 상속계층도에 포함되지 못했다. 이러한 설계는 객체지향언어의 장점을 극명히 보여주는 것으로 객체지향개념을 학습하는 사람들에게 많은 것을 느끼게 한다. 후에 프로그래밍 실력을 어느 정도 갖추게 되었을 때 컬렉션 프레임워크의 실제 소스를 분석해 보면 객체지향적인 설계능력을 향상하는데 많은 도움이 될 것이라고 한다.
List - 순서가 있는 데이터의 집합, 데이터의 중복을 허용함. Ex) 대기자 명단
Set - 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않음. Ex) 양의 정수집합, 소수의 집합
Map - 키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합, 순서는 유지되지 않고, 키는 중복을 허용하지 않고, 값은 중복을 허용 Ex) 우편번호, 지역번호(전화번호) (key란 데이터 집합 중에서 어떤 값을 찾는데 열쇠가 된다는 의미에서 붙여진 이름이라고 한다. 그래서 키는 중복을 허용하지 않는다고 함!)
실제 개발 할 때 다루고자 하는 컬렉션의 특징을 파악하고 어떤 인터페이스를 구현한 컬렉션 클래스를 사용해야 하는지 결정해야 하므로 위에 작성된 인터페이스의 특징과 차이를 잘 이해하고 있어야 한다. 컬렉션 프레임워크의 모든 컬렉션 클래스들은 List, Set, Map 중의 하나를 구현하고 있으며, 구현한 인터페이스의 이름이 클래스의 이름에 포함되어 있어서 이름만으로도 클래스의 특징을 쉽게 알 수 있도록 되어있다.
하지만 Vector, Hashtable, Properties와 같은 클래스들은 컬렉션 프레임웍이 만들어지기 전부터 존재하던 것이기 때문에 컬렉션 프레임워크의 명명법을 따르지 않음!
'Java' 카테고리의 다른 글
Java 27. 입출력 스트림 IO Stream (Input Stream, Output Stream) 연습 (0) | 2023.03.29 |
---|---|
Java26. List 컬렉션 리스트의 특징 (ArrayList, Vector, LinkeList) (0) | 2023.03.28 |
Java 24. exception re-throwing (예외 되던지기 연습해보기) (0) | 2023.03.26 |
Java 23. try-catch, finally (예외 처리 코드) (0) | 2023.03.24 |
Java 23. Exception handling 예외처리(오류, 에러) (0) | 2023.03.23 |