Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

정리하는 습관을 들이자

java 의 Collections 본문

Language/java

java 의 Collections

호웅이 2016. 12. 1. 15:49

Collection이란? 


오브젝트 집합을 나타내는 가장 기본적인 인터페이스



Java Collection Framework (JCF)


배열의 단점 ( 배열은 처음 크기를 지정하면 변경이 불가능하다 )을 보완한 데이터 군을 저장하는 클래스들의 표준화한 설계 

(동적으로 메로리 관리 가능)


java에서 데이터를 저장하는 기본적인 자료구조로 사용용도에 따라 List, Set, Map 3가지료 요약할 수 있다.



[  JCF(Java Collection Framework)의 상속구조 그림  ]


각각의 인터페이스 특징


 인터페이스

구현클래스

특징

List

LinkedList

Stack

Vector

ArrayList

 순서가 있는 데이터의 집합

 데이터의 중복을 허용한다.

 각요소마다 인덱스가 존재. 인덱스로 직접 접근가능

Set

HashSet

TreeSet

 순서를 유지하지 않는 데이터의 집합 

 데이터의 중복을 허용하지 않는다. 

Map 

 HashMap

TreeMap

HashTable

SortedMap

 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합

 순서는 유지되지 않음

 키는 중복을 허용하지 않으며 값의 중복을 허용





※ Sorted : Set과 Map 인터페이스를 상속받아 정렬기능 이 추가되된 SortedSet과 SortedMap 인터페이스가 있다. 각각 TreeSet, TreeMap 클래스로 구성되며 각각은 Set과 Map의 기능을 가지고 있으면서 정렬 기능이 가미되어 있는것이 특징.


  • List Interface

    1. ArrayList

      1. 상당히 빠르고 크기를 마음대로 조절할 수 있는 배열 (동적으로 메모리 증가 기능을 구현한 클래스)

      2. 단방향 포인터 구조로 자료에 대한 순차적인 접근에 강점

      3. 동기화를 보장하지 않음 ( 동기화 방법 : List list = Collections.synchronizeList(new ArrayList(…) )

    1. LinkedList

      1. 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 빠른 성능 보장

      2. 스택,큐,양방향 큐 등을 만들기 위한 용도로 사용

    2. Vector

      1. 모든메소드가 동기화 되어있음

      2. ArrayList의 구형버전으로 최근에 잘 사용하지 않음.

  • Set Interface

    1. HashSet

      1. 가장 빠른 임의 접근 속도

      2. 속도를 전혀 예측할수 없음

      3. Iterator 를 사용하여 Data추출 가능 (Iterator : Collection 내의 모든 Data에 접근 가능한 특징이 있다. )

    2. LinkedHashSet

      1. 추가된 순서로 접근 가능

    3. TreeSet 

      1. 이진탐색트리 자료구조 형태로 데이터를 저장

      2. 저장되는 시점에 정렬된 위치에 저장됨

  • Map Interface : List와 Set이 순서나 집합적인 개념의 인터페이스 라면 Map은 검색의 개념이 가미된 인터페이스                                (key값을 통해 value를 얻을수 있음.)

    1. HashMap

      1. 키와 값으로 null이 허용됨

      2. 동기화가 보장되지 않음 ( 동기화 : Map m = Collections.synchronizedMap(New HashMap(…)); )

    2. HashTable

      1. 키와 값으로 null이 허용되지 않음

      2. HashMap 보다는 느리지만 동기화가 보장됨

    3. LinkedHashMap

      1. 기본적으로 HashMap 을 상속받아 HashMap과 매우 흡사

      2. Map에 있는 엔트리들의 연결 리스트가 유지되므로 입력한 순서대로 반복 가능

    4. TreeMap

      1. SortedMap을 구현하였으므로 key값들에 의해 정렬됨

 









참조 



-    http://hackersstudy.tistory.com/26

Comments