1. 컬렉션 프레임웍(Collection Framework)

- 배열의 단점을 보완한 데이터 군을 저장하는 클래스들을 표준화한 설계이다.

- 다수의 데이터를 쉽게 처리할 수 있는 방법을 제공하는 클래스들로 구성된다.

- 컬렉션(collection) : 다수의 데이터, 데이터 그룹을 의미한다.

- 프레임워크(framework) : 표준화, 정형화된 체게적인 프로그래밍 방식이다.

- 컬렉션 클래스(collection class) : 다수의 데이터를 저장할 수 있는 클래스이다.


2. 컬렉션 프레임웍의 핵심 인터페이스

- 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다. (Set, List, Map)

- 인터페이스 List와  Set의 공통된 부분을 새로운 인터페이스인 Collection을 추가로 정의하였다.


 인터페이스

 특징 

 Set

 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다. 예) 양의 정수집합, 소수의 집합

 구현 클래스 : HashSet, TreeSet 등

 List

 순서가 있는 데이터의 집합, 데이터의 중복을 허용한다. 예 ) 대기자 명단

 구현 클래스 : ArrayList, LinkedList, Stack, Vector 

 Map

 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합, 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.

 구현클래스 : HashMap, TreeMap, Hashtable, Properties 등


3. 동기화(Synchronization)

- 멀티쓰레드(multi-thread) 프로그래밍에서는 하나의 객체를 여러 쓰레드가 접근할 수 있기 때문에 데이터의 일관성(consistency)을 유지하기 위해 동기화가 필요하다.

- Vector와 같은 구버전 클래스들은 자체적으로 동기화처리가 되어있다.

- ArrayList와 같은 신버전 클래스들은 별도의 동기화처리가 필요하다.

- Collections 클래스는 다음과 같은 동기화 처리 메서드를 제공한다.

- static Collection SynchronizedCollection (Collection c)

- static List synchronizedList (List list)

- static Map synchronizedMap (Map m)

- static Set synchronizedSet (Set s)

- static SortedMap synchronizedSortedMap (SortedMap m)

- static SortedSet synchronizedSortedSet (SortedSet s)


4.Vector 와 ArrayList

- List 인터페이스를 구현하기 때문에 데이터의 저장순사가 유지되고 중복을 허용한다.

- ArrayList는 기존의 Vector를 개선한 것으로 구현원리와 기능적으로 동일하다.

- 데이터의 저장공간으로 배열을 사용한다. (배열기반)

- Vector는 자체적으로 동기화처리가 되어 있으나 ArrayList는 그렇지 않다.

- Object배열을 이용해서 데이터를 순차적으로 저장한다.

- 배열에 더이상 공간이 없으면 보다 큰 새로운 배열을 생성해서 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음에 저장된다.

- ArrayList는 removeRange()를 제외한 모든 메서드가 Vector 메서드와 일치한다.

'Java > Java SE' 카테고리의 다른 글

Java 이름 규칙(Naming Rule)  (0) 2013.08.16
Java Deep Copy, Shallow Copy  (0) 2013.08.12
Java 내부클래스(inner class)  (0) 2013.08.09
Java 예외처리(exception handling)  (1) 2013.08.08
Java 인터페이스(interface)  (2) 2013.08.07

+ Recent posts