Collection — 컬렉션 계층의 루트 인터페이스

Collection — 컬렉션 계층의 루트 인터페이스

컬렉션 계층(collection hierarchy)의 루트 인터페이스예요.

출처: Java API Reference

본문

시그니처

public interface Collection<E> extends Iterable<E>

타입 매개변수: E — 이 컬렉션의 요소 타입.

설명

컬렉션은 요소(elements)라고 알려진 객체의 그룹을 나타내요. 어떤 컬렉션은 중복 요소를 허용하고 어떤 것은 허용하지 않아요. 어떤 것은 정렬되어 있고 어떤 것은 정렬되어 있지 않아요. 정의된 만남 순서(encounter order)를 가진 컬렉션은 일반적으로 SequencedCollection 인터페이스의 하위 타입이에요.

JDK는 이 인터페이스의 직접 구현을 제공하지 않아요. SetList 같은 더 구체적인 하위 인터페이스의 구현을 제공해요. 이 인터페이스는 보통 최대한의 일반성이 요구되는 곳에서 컬렉션을 전달하고 조작하는 데 사용돼요. 중복 요소를 포함할 수 있는 순서 없는 컬렉션인 bag/multiset은 이 인터페이스를 직접 구현해야 해요.

모든 범용 Collection 구현 클래스는 두 개의 "표준" 생성자를 제공해야 해요: 빈 컬렉션을 만드는 void(무인자) 생성자와, 인자와 같은 요소의 새 컬렉션을 만드는 단일 Collection 인자 생성자예요. 효과적으로 후자 생성자는 어떤 컬렉션이든 복사해 원하는 구현 타입의 동등한 컬렉션을 만들 수 있게 해 줘요.

일부 메서드는 선택적(optional)으로 지정돼요. 컬렉션 구현이 특정 연산을 구현하지 않는다면 해당 메서드가 UnsupportedOperationException을 던지도록 정의해야 해요. 일부 컬렉션 구현은 포함할 수 있는 요소에 제한이 있어요. 예를 들어 어떤 구현은 null 요소를 금지하고, 어떤 것은 요소 타입에 제한이 있어요. 적격하지 않은 요소를 추가하려 하면 보통 NullPointerException이나 ClassCastException 같은 비검사(unchecked) 예외가 던져져요.

주요 메서드

  • add(E e) — 이 컬렉션이 지정한 요소를 포함하도록 보장해요 (선택 연산).
  • addAll(Collection<? extends E> c) — 지정한 컬렉션의 모든 요소를 이 컬렉션에 추가해요 (선택 연산).
  • clear() — 이 컬렉션에서 모든 요소를 제거해요 (선택 연산).
  • contains(Object o) — 이 컬렉션이 지정한 요소를 포함하면 true를 반환해요.
  • containsAll(Collection<?> c) — 지정한 컬렉션의 모든 요소를 이 컬렉션이 포함하면 true를 반환해요.
  • isEmpty() — 이 컬렉션에 요소가 없으면 true를 반환해요.
  • iterator() — 이 컬렉션의 요소에 대한 iterator를 반환해요.
  • remove(Object o) — 이 컬렉션에서 지정한 요소의 단일 인스턴스를 제거해요 (선택 연산).
  • removeAll(Collection<?> c) — 지정한 컬렉션에도 포함된 이 컬렉션의 모든 요소를 제거해요 (선택 연산).
  • retainAll(Collection<?> c) — 지정한 컬렉션에도 포함된 요소만 이 컬렉션에 남겨요 (선택 연산).
  • size() — 이 컬렉션의 요소 수를 반환해요.
  • toArray() — 이 컬렉션의 모든 요소를 포함한 배열을 반환해요.

더 알아보기 (Learn more)