Language/Java

[Java] Collection framework

i-m-okay 2024. 7. 22. 14:14

collection framework?

데이터 군을 저장하는 클래스들을 표준화한 설계.
데이터 군을 다루고 표현하기 위한 단일화된 구조.

  • 컬렉션 : 다수의 데이터. 데이터 그룹
  • 프레임웍 : 표준화된 프로그래밍 방식

JDK1.2부터 등장 (그 전에는 Vector, Hashtable, Properties 있었음)

컬렉션 데이터 그룹을 크게 세 가지로 존재한다고 정의한다.

  1. List
  2. Set
  3. Map
classDiagram
    Collection <|-- List
    Collection <|-- Set

List와 Set은 공통부분이 많아서 Collection 인터페이스로 정의할 수 있었으나, Map은 성질이 달라 상속 계층도에 포함되지 않는다.

Collection 인터페이스 메서드

  • add/addAll() : 객체 또는 클래스를 collection에 추가
  • clear() : 모두 삭제
  • contains/containsAll() : 포함되어있는가
  • equals()
  • hashCode()
  • isEmpty()
  • iterator()
  • remove/removeAll()
  • retainAll() : 지정된 객체를 남기고 나머지는 삭제
  • size()
  • toArray() : 저장된 객체를 객체배열로 반환 or 지정된 배열에 객체를 저장해서 반환

List 인터페이스

  • 중복 허용, 저장순서 유지상속계층도
classDiagram
    List <|-- Vector
    List <|-- ArrayList
    List <|-- LinkedList
    Vector <|-- Stack

diagram그리는 장치 : mermaid

List 인터페이스 메서드

  • add(idx, obj)/addAll(idx, collection) : 지정된 위치에 객체를 추가
  • get(idx) : 지정된 위치에 있는 객체를 반환
  • indexOf(o) : 지정된 객체의 위치를 반환
  • lastIndexOf(o) : 지정된 객체의 위치 반환(역방향 탐색)
  • listIterator() : List의 객체에 접근할 수 있는 ListIterator를 반환
  • remove(idx) : 지정된 위치에 있는 객체 삭제 및 반환
  • set(idx, o) : 지정된 위치에 객체를 저장 및 반환
  • sort(comparator c) : comparator로 List 정렬
  • subList(from, to) : 지정된 범위에 있는 객체를 반환

Set 인터페이스

  • 중복 허용 X, 순서 유지 X
classDiagram
    Set <|-- HashSet
    Set <|-- SortedSet
    SortedSet <|-- TreeSet
  • 메서드는 모두 collection 인터페이스로부터 상속받음

Map 인터페이스

  • 키는 중복될 수 없음 (같은 키로 값을 다르게 저장할 경우 갱신되는 방식)
  • 키와 값을 하나의 쌍으로 묶어 저장
classDiagram
    Map <|-- Hashtable
    Map <|-- HashMap
    Map <|-- SortedMap
    HashMap <|-- LinkedHashMap
    SortedMap <|-- TreeMap

Map 인터페이스 메서드

  • clear()
  • containsKey/containsValue(o)
  • entrySet() : key-value 쌍을 Map.Entry타입의 객체로 저장한 Set으로 반환
  • equals()
  • get(o) : 지정한 key객체에 대응하는 value객체를 찾아서 반환
  • hashCode()
  • isEmpty()
  • Set keySet() : Map에 저장된 모든 key객체를 반환(중복이 안되므로 Set으로 반환)
  • put(key,val) : value객체를 key객체에 연결하여 저장
  • putAll(Map t) : 지정된 Map에 모든 key-value쌍을 추가
  • remove(key) : 지정된 key-value 객체 삭제
  • size()
  • Collection values() : 저장된 모든 value객체를 반환(중복 가능하므로 Collection으로 반환)