Java

Collection 개요

bang2001 2013. 7. 25. 15:46

1. Java Collection Framework의 장점


- 객체지향 프로그래밍에서도 알고리즘과 데이터 구조는 매우 중요
  객체 내부를 구현하는데 있어서 얼마나 적합한 알고리즘을 사용하느냐와
  데이터 구조를 사용하느냐가 매우 중요.
  복잡한 프로그램 제작을 위해 다양한 종류의 데이터 구조가 요구됐고,
  이러한 요구에 따라 자바2 부터 등장한 것이 Java Collection Framework이다.

- 컬렉션을 사용함으로써 얻는 장점은 다음과 같다.

1> 자료구조를 구현하는데 드는 시간과 노력을 덜어준다.
  : 자료구조를 구현하는 일이 쉬운 일은 아니다. 컬렉션 프레임웤에서는
    필수적으로 필요한 자료구조를 구현하여 제공하고 있다.

2> 표준적인 방법을 제시함으로써 API숙지에 필요한 시간을 절감
  :자바 프레임웤이 나오기 전에는 회사마다 구현한 자료구조를 구해 사용
  해야 했음. 따라서 각 회사마다의 API 를 숙지해야 하는 번거로움이 있었음

3> 좋은 성능을 기대할 수 있다.   

2. Collection Framework의 계층구조

1) Collection 계열

 Collection
  |      |
          Set     List
           |  
      SortedSet  

 1>특징 
   - 객체 입력 순서를 기억
   - 중복을 허용
 2> 하위의 주요 클래스
    - ArrayList, Vector



2) Map 계열
Map
 |
     SortedMap
  1> 특징
    - Object유형(객체형)의 key와 value가 매핑(mapping)되어 저장
    - key값은 중복되어선 안된다. [value는 중복 허용]

  2> 하위의 주요 클래스
  -HashtableProperties


+----------------+---------------------------+------------------------+
| 인터페이스     |                 특징                 |  구현 클래스                 |
+----------------+---------------------------+------------------------+
Set                   |  - 데이터 순서와는 무관       | HashSet, TreeSet          |
|                        |  - 데이터 중복을 허용치않음 |                                    |
+----------------+---------------------------+------------------------+
List                  | - 데이터 순서를 관리함        | ArrayList, LinkedList,     | 
|                        | - 데이터 중복을 허용           | Vector                          |
+----------------+---------------------------+------------------------+
Map                 | - 키(key)와 값(value)을       |                                   |
|                        |    묶어서 관리                     | HashMap, TreeMap,     |
|                        |- 키(key) 중복을 허용치않음  | Hashtable                    |
+----------------+---------------------------+------------------------+