Java Collection Framework




1. 정의

 다수의 데이터를 쉽게 처리할  있는 표준화된 방법을 제공하는 클래스들을 말한다컬렉션(Collecion) 다수의 데이터  데이터 그룹프레임워크(Framework) 표준화된 방식을 의미한다.



2. 종류


1. List  순서가 있는 데이터의 집합데이터의 중복을 허용한다.
 원소의 순서가 정의되어 있으며컬렉션상의 위치를 통해 원소에 접근할  있다따라서 List 사용하면 컬렉션 상에서의 인덱스를 통해 어떤 원소를 접근   있다원소간의 순서가 중요한 경우예를 들어 도착 순서대로 메세지를 처리하는 큐의 경우에는 리스트를 사용해야 한다.


2. Set  순서를 유지하지않는 데이터의 집합데이터의 중복을 허용하지 않는다.
 중복원소(상호간 equals() 결과가 참인 원소) 허용하니 않는 컬렉션원소 사이의 순서가 없으므로이전 순차 열람할 때의 원소 순서가 다음 순차 열람할  보장되지 않는다.


3. Map  (key) (value) 쌍으로 이루어진 데이터집합순서는 유지되지않으며 키는 중복이 허용하지 않는다값의 중복은 허용.
 Map List처럼 키를 사용해서 원소를 저장하지만, List 정수만을 키로 사용할  있는 반면 Map 임의의 객체를 키로 사용할  있다 Map 다른 컬렉션 인터페이스와는 형태가 상이하여 다른 컬렉션 인터페이스를 상속하지 않고내부적으로 키에 대한 컬렉션과 데이터에 대한 컬렉션의 2 컬렉션을 유지한다.


 JDK 1.2 이전 까지는 Vector, Stack, Hashtable, Properties 같은 컬렉션 클래스들을 서로 다른 각자의 방식으로 처리해야 했으나, JDK 1.2부터 컬렉션 프레임워크가 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스들이 표준화된 방식으로 다룰  있도록 체계화 되었다따라서 컬렉션 프레임워크가 만들어지기 이전에 존재하던 것이기 떄문에 컬렉션 프레임워크 명명법을 따르지 않는다



3. 구현

1.List 구현

 ArrayList LinkedList.

 ArrayList 원소 접근이 빠르고 원소 추가  제거가 느린 반면 LinkedList 원소 접근이 느리지만 원소 추가와 제거는 빠르다.

 

2. Set, SortedSet 구현

 HashSet 가장 빠르지만 원소간의 순서를 보장해주지 않는다. LinkedHashSet 원소  순서를 보장해 주지만 원소 추가 삭제  30% 정도 시간이  걸린다. TreeSet Comparator 따라서 원소를 정렬하지만 원소 추가 삭제 시간이 logn(n 컬렉션의 크기) 비례해서 커진다.

 

3. Map 구현

 Map 구현은 Set 구현과 비슷한 패턴을 보인다. HashMap 가장 빠르고 단순하다. LinkedHashMap 컬렉션에 추가된 원소 간의 순서를 보장한다. TreeMap(SortedMap 구현) 키의 순서에 따라 순차 열람이 가능하지만 원소의 추가 제거 시간이 logn(n 컬렉션의 크기) 비례한다.


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

자바 reflection  (0) 2016.11.17
문자열 "ABCDEFG"를 역순으로 출력  (0) 2016.11.17
JAVA의 접근제한자  (0) 2016.11.15
오버로딩 vs 오버라이딩  (0) 2016.11.14
Abstract class vs Interface  (0) 2016.11.01

+ Recent posts