Collections framework

정미·2022년 7월 28일
0

Computer Science

목록 보기
47/81

Collection

데이터의 집합, 그룹

Collections Framework

다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합

데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것

주요 인터페이스

  1. List 인터페이스: 순서가 있는 데이터 집합
  2. Set 인터페이스: 집합적인 데이터 저장 공간
  3. Map 인터페이스: 키와 값의 한 쌍으로 이루어지는 데이터 집합
  • List와 Set은 Collection 인터페이스를 구현하고, 두 인터페이스의 공통 부분은 Collection 인터페이스에서 정의한다.
  • Map은 구조상의 차이로 인해 별도로 정의된다.

1. List interface

  • ArrayList
    • 단방향 데이터 구조
    • 각 데이터에 대한 인덱스를 가지고 있어서 조회 성능이 뛰어나다.
  • Vector
    • 과거에 대용량 처리를 위해 사용했다.
    • 내부에서 자동으로 동기화 처리가 일어나서 비교적 성능이 좋지 않고 무거워 잘 쓰이지 않는다.
  • LinkedList
    • 양방향 포인터 구조
    • 데이터 삽입, 삭제가 빈번할 경우 데이터 위치 정보만 수정하면 돼서 유용하다.
    • Stack, Queue, 양방향 Queue 등

2. Set interface

  • HashSet
    • 가장 빠른 random access 속도
    • 순서를 예측할 수 없다.
  • TreeSet
    • 정렬방법 지정 가능

3. Map interface

  • HashMap
    • null 값 가능
  • Hashtable
    • 동기화 지원
    • HashMap보다 느리다
    • null 불가
  • TreeMap
    • 정렬된 순서대로 key와 value를 저장한다.
    • 검색이 빠르다.

4. Collection interface

  • List 인터페이스와 Set 인터페이스의 공통 부분을 정의하고 인터페이스는 이를 상속받는다.
  • add(E e), contains(Object o), iterator(), size(), toArray() 등을 제공

상속 구조

특징

인터페이스순서중복 허용구현 클래스
List<E>OOVector, ArrayList, LinkedList, Stack, Queue
Set<E>XXHashSet, TreeSet
Map<K, V>Xkey: X / value: OHashMap, TreeMap, Hashtable, Properties

컬렉션 클래스 collection class

컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스

  • 모든 컬렉션 클래스는 List, Set, Map 인터페이스 중 하나의 인터페이스를 구현한다.
  • 클래스 이름에 구현한 인터페이스의 이름이 포함되어 있다.
    • Vector, Hashtable은 이전부터 사용, 호환을 위해 남아있다.
    • 두 클래스보다 새로 추가된 ArrayList나 HashMap이 성능이 좋다.

출처

0개의 댓글