11장

1. Collection 프레임워크

1.1. 장점

  • 데이터 구조&알고리즘을 제공하므로 직접 구현하는 프로그래밍 노력 절감

  • 고성능 데이터 구조&알고리즘을 제공하므로 성능 향상

  • 컬렉션을 앞뒤로 전달하는 공통 언어를 설정하여 관련 없는 API 간의 상호 운용성을 제공

  • 여러 임시 수집 API를 학습하도록 요구하여 API를 학습하는 데 필요한 노력 절감

  • 임시 Collection API를 생성하지 않아도 되므로 API를 설계하고 구현하는 데 필요한 노력이 절감

  • 컬렉션을 조작하는 알고리즘&표준 인터페이스를 제공하므로 소프트웨어 재사용 촉진

1.2. 구성

  • Collection interfaces: 다양한 유형의 모음

  • General-purpose implementations: list, set, map 등 컬렉션 인터페이스의 기본 구현

  • Legacy implementations: 이전 버전의 벡터 클래스&해시테이블 인터페이스를 구현

  • Special-purpose implementations: 특별한 상황에서 상요하도록 설계된 구현

  • Concurrent implementations: 고도의 동시 사용을 위해 설계된 구현

  • Wrapper implementations: 다른 구현에 동기화와 같은 기능 추가

  • Convenience implementations: 컬렉션 인터페이스의 고성능 미니 구현

  • Abstract implementations: 사용자 지정 구현을 용이하게 하기 위한 부분 구현

  • Algorithms: 목록 정렬과 같이 컬렉션에서 유용한 기능을 수행하는 정적 메서드

  • Infrastructure: 컬렉션 인터페이스에 대한 필수 지원을 제공하는 인터페이스

  • Array Utilities: 기본 유형 및 참조 개체의 배열에 대한 유틸리티 함수

    • (엄밀히 말하면 컬렉션 프레임워크가 아님)

2. Collection 인터페이스

Title
Interface Collection<E>

Module

Package

Type Signature

public interface Collection<E> extends Iterable<E>

Block

Collection 계층 구조의 루트 인터페이스 - Collection: elements로 알려진 object 그룹 일부 Collection은 중복 요소를 허용하고 다른 컬렉션은 허용하지 않음 일반적으로 Collection을 전달하고 일반성이 필요한 곳에서 조작하는데 사용

Note

Since

1.2

2.1. Collection 인터페이스의 그룹

2.2. Collection 인터페이스의 구현

Interface

Hash Table

Resizable Array

Balanced Tree

Linked List

Hash Table + Linked List

3. 동시 Collection

4. iterator와 Collection 메서드

  • iterator: 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스

    • ListIterator: iterator에 양방향 조회기능 추가(List를 구현한 경우에만 사용 가능)

    • Enumeration: iterator의 구버전

  • 컬렉션의 메서드(접미사로 구분)

    • synchronized: 스레드 안정성을 위해 사용

    • unmodifiable: 컬렉션을 불가 상태로 만듦

    • singleton: 단 하나의 객체만을 저장하는 컬렉션

    • checked: 한 종류의 객체만 저장

참고 자료

  • 자바의 정석 - 도우출판

Last updated