28 컬렉션 프레임워크(Collection Framework)
컬렉션 프레임워크(Collection Framework)
많은 데이터를 쉽고 효과적으로 관리할 수 있는 표준화된 방법을 제공하는 클래스들의 집합이다.
즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다.
여기서 잠깐 ! 알고리즘과 자료구조가 무엇일까?
알고리즘 : 어떠한 문제를 해결하기 위한 순서 혹은 절차
자료구조 : 의미없는 데이터를 구조화된 알고리즘에 넣음으로써 하나의 정보를 생산하는 작업
컬렉션 프레임워크 주요 인터페이스
컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현된다.
컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 핵심이 되는 주요 인터페이스를 정의하고 있다.
1. List 인터페이스 (extends Collection)
2. Set 인터페이스 (extends Collection)
3. Map 인터페이스
이 중에서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만,
구조상의 차이로 인해 Map 인터페이스는 별도로 정의된다.
따라서 List 인터페이스와 Set 인터페이스의 공통된 부분을 Collection 인터페이스에서 정의하고 있다.
주요 인터페이스 특징
인터페이스 | 설명 | 구현 클래스 |
List | - 순서가 있는 데이터의 집합 - 데이터의 중복을 허용함. |
Vector, ArrayList, LinkedList, Stack, Queue |
Set | - 순서가 없는 데이터의 집합 - 데이터의 중복을 허용하지 않음. |
HashSet, TreeSet |
Map |
- 키와 값의 한 쌍으로 이루어지는 데이터의 집합 |
HashMap, TreeMap, Hashtable, Properties |
컬렉션 클래스(collection class)
컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스를 컬렉션 클래스(collection class)라고 한다.
컬렉션 프레임워크의 모든 컬렉션 클래스는 List와 Set, Map 인터페이스 중 하나의 인터페이스를 구현하고 있다.
또한, 클래스 이름에도 구현한 인터페이스의 이름이 포함되므로 바로 구분할 수 있다.
Vector나 Hashtable과 같은 컬렉션 클래스는 예전부터 사용해 왔으므로, 기존 코드와의 호환을 위해 아직도 남아 있다.
- Vector : 아주 초창기에 만들어진 자료구조(용량관리와 안전성)
- ★ArrayList : 개발에서 가장 많이 사용되는 자료구조
- LinkedList : FILO, stack구조로서, 값을 가져올 때 비효율적이다.
이러한 이유로, 기존에 사용하던 컬렉션 클래스를 사용하는 것보다는 새로 추가된 ArrayList나 HashMap 클래스를 사용하는 것이 성능 면에서도 더 나은 결과를 얻을 수 있습니다.
Collection 인터페이스
List와 Set 인터페이스의 많은 공통된 부분을 Collection 인터페이스에서 정의하고, 두 인터페이스는 그것을 상속받는다.
따라서 Collection 인터페이스는 컬렉션을 다루는데 가장 기본적인 동작들을 정의하고, 그것을 메소드로 제공하고 있다.
Collection 인터페이스에서 제공하는 주요 메소드는 다음과 같다.
출처 : http://www.tcpschool.com/
열심히 공부하고 있지만, 오류 사항이 존재 할 수 있습니다.
수정 사항이 존재 할 경우 알려주시면 감사하겠습니다 <(__)>