AbstractList — List 인터페이스의 뼈대 구현

AbstractList — List 인터페이스의 뼈대 구현

"임의 접근(random access)" 데이터 저장소(예: 배열)를 기반으로 List 인터페이스를 구현하는 노력을 최소화하기 위한 뼈대 구현을 제공하는 추상 클래스예요.

출처: Java API Reference

본문

시그니처

public abstract class AbstractList<E> extends AbstractCollection<E>
    implements List<E>

타입 매개변수: E — 이 리스트의 요소 타입.

설명

이 클래스는 임의 접근 데이터 저장소(예: 배열)를 기반으로 List 인터페이스의 뼈대 구현을 제공해요. 순차 접근 데이터(예: 연결 리스트)에는 이 클래스보다 AbstractSequentialList를 사용해야 해요.

불변 리스트를 구현하려면 프로그래머는 이 클래스를 확장하고 get(int)size() 메서드만 구현하면 돼요. 가변 리스트를 구현하려면 프로그래머는 추가로 set(int, E) 메서드(그렇지 않으면 UnsupportedOperationException을 던짐)를 오버라이드해야 해요. 리스트가 가변 크기라면 추가로 add(int, E)remove(int) 메서드를 오버라이드해야 해요.

다른 추상 컬렉션 구현과 달리 프로그래머는 iterator 구현을 제공할 필요가 없어요. iterator와 list iterator는 get(int), set(int, E), add(int, E), remove(int) 같은 "임의 접근" 메서드 위에 이 클래스가 구현해요.

각 비-추상 메서드에 대한 문서는 구현을 자세히 설명해요. 구현되는 컬렉션이 더 효율적인 구현을 허용한다면 각 메서드를 오버라이드할 수 있어요. 이 클래스는 Java Collections Framework의 구성원이에요.

주요 메서드

  • add(int index, E element) — 지정한 요소를 이 리스트의 지정한 위치에 삽입해요 (선택 연산).
  • get(int index) — 이 리스트에서 지정한 위치의 요소를 반환해요.
  • set(int index, E element) — 이 리스트의 지정한 위치의 요소를 지정한 요소로 교체해요 (선택 연산).
  • remove(int index) — 이 리스트에서 지정한 위치의 요소를 제거해요 (선택 연산).
  • add(E e) — 지정한 요소를 이 리스트의 끝에 추가해요 (선택 연산).
  • clear() — 이 리스트에서 모든 요소를 제거해요 (선택 연산).
  • indexOf(Object o) — 지정한 요소가 처음 나타나는 인덱스를 반환해요.
  • iterator() — 적절한 순서로 요소에 대한 iterator를 반환해요.
  • listIterator() — 리스트의 요소에 대한 list iterator를 반환해요.

더 알아보기 (Learn more)