-
[Java] 컬렉션 프레임워크(collection framework)프로그래밍/JAVA 2022. 8. 9. 21:17728x90
자바는 널리 알려져 있는 자료구조를 사용해서 객체들을 효율적으로 추가, 삭제, 검색 할 수 있도록 인터페이스(interface)와 구현 클래스를 java.util 패키지에서 제공한다. 여러가지 데이터를 메모리에서 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스들의 집합인 이것을 총칭해서 컬랙션 프레임워크라고 부른다.
즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다.
자료구조
- 데이터를 효율적으로 관리할 수 있는 데이터 구조를 의미
- 데이터의 특성에 따라 체계적으로 구조화
알고리즘
- 어떤 문제를 풀기 위한 절차 및 방법
- 어떤 문제에 대해 입력을 넣으면 원하는 출력을 얻을 수 있도록 만드는 프로그래밍
컬렉션 프레임워크은 인터페이스를 사용하여 구현하고 주요 인터페이스를 정의 한다.
1. List 인터페이스
2. Set 인터페이스
3. Map 인터페이스
List 인터페이스 와 Set 인터페이스는 Collection 인터페이스를 상속받고 Map 인터페이스는 별도로 정의된다. 또한 Collection 인터페이스는 Iterable 인터페이스를 상속받는다.
Iterable 인터페이스는 iterator() 메소드를 추상메소드로 선언되어있어 하위 클래스에서 반드시 구현하게 한다.
iterator 인터페이스
컬렉션 프레임워크 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근할 수 있도록 설계되었다. Iterator의 주요 기능은 자바의 컬렉션 프레임워크에 저장되어 있는 요소들을 읽어오고 그로부터 정보를 얻어내는 것이다.
Iterator 인터페이스의 메소드를 살펴보자.
- hasNext() : 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환한다.
- next() : 다음 요소를 반환한다.
- remove() : 마지막 요소를 제거함.
컬렉션 프레임워크 종류에 상관없이 일관성 있게 프로그래밍을 할 수 있다는 장점을 가지고 있는 반면, 반복 시 size 메소드를 얻어와서 반복 처리하는 것 보다 속도가 좋지않다. 따라서 JDK 1.5부터 추가된 Enhanced for를 사용할 것을 권장한다.
728x90'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] Set 컬렉션 클래스 (0) 2022.08.09 [Java] List 컬렉션 클래스 (0) 2022.08.09 [Java] 인터페이스(interface) (0) 2022.08.08 [Java] 추상 클래스(abstract class) (0) 2022.08.08 [Java] Wrapper class (0) 2022.08.08