JavaTM Platform
Standard Ed. 6

java.util
인터페이스 List<E>

모든 슈퍼 인터페이스:
Collection <E>, Iterable <E>
기존의 구현 클래스의 일람:
AbstractList , AbstractSequentialList , ArrayList , AttributeList , CopyOnWriteArrayList , LinkedList , RoleList , RoleUnresolvedList , Stack , Vector


public interface List<E>
extends Collection <E>

순서 붙일 수 있었던 컬렉션입니다. 「순서」라고도 불립니다. 이 인터페이스의 사용자는, 리스트내의 어디에 각 요소가 삽입될까를 정밀하게 제어할 수 있습니다. 사용자는 정수치의 인덱스 (리스트내의 위치)에 의해 요소에 액세스 하거나 리스트내의 요소를 검색하거나 할 수가 있습니다.

세트와는 달라, 일반적으로, 리스트는 중복 하는 요소를 허가합니다. 즉, 리스트는, 일반적으로 e1.equals(e2) 가 되는 것 같은,e1e2 의 요소의 페어를 허가합니다. 또, null 요소를 허가하는 경우에는, 일반적으로은 복수의 null 요소를 허가합니다. 사용자가 중복 하는 값을 삽입하려고 했을 때에 실행시의 예외를 throw 하는 것으로써, 중복 하는 값을 금지하는 리스트를 구현하는 경우도 있습니다만, 이와 같이 사용되는 것은 거의 없습니다.

List 인터페이스는,iterator,add,remove,equals, 및 hashCode 의 각 메소드의 규약에 대해서,Collection 인터페이스로 지정되고 있는 것에 가세해 한층 더 조항을 추가합니다. 편의상, 다른 상속 메소드의 선언도 여기에 포함됩니다.

List 인터페이스는, 위치를 지정해 (인덱스로) 리스트의 요소에 액세스하기 위한 4 개의 메소드를 제공합니다. Java 배열과 같게, List 의 인덱스는 0 으로부터 시작됩니다. 일부의 구현 (LinkedList 클래스등)에서는, 이러한 오퍼레이션의 실행에는 인덱스치 에 비례한 시간이 걸리는 경우가 있습니다. 이 때문에, 호출측이 이러한 구현에 대해 모르는 경우는, 리스트에 인덱스를 붙이는 것보다도, 리스트내의 요소의 반복 처리를 행해 주세요.

List 인터페이스는,Iterator 인터페이스가 제공하는 일반적으로의 오퍼레이션에 가세해, 요소의 삽입, 치환, 및 쌍방향 액세스를 가능하게 하는,ListIterator 라고 하는 특수한 반복자를 제공합니다. 리스트내의 지정한 위치로부터 개시하는 리스트 반복자를 취득하기 위한 메소드가 제공되고 있습니다.

List 인터페이스는, 지정한 객체를 검색하기 위한 2 개의 메소드를 제공합니다. 퍼포먼스의 관점으로부터는, 이러한 메소드는 주의해 사용할 필요가 있습니다. 많은 구현으로 이러한 메소드는, 시간이 걸리는 선형 탐색을 실행합니다.

리스트내의 임의의 위치에 복수의 요소를 효율적으로 삽입 및 삭제하기 위해서,List 인터페이스는 2 개의 메소드를 제공합니다.

주:리스트에 리스트 자체를 요소로서 포함하는 일도 가능합니다만, 충분히 주의해 주세요. 그러한 리스트에서는 equals 메소드 및 hashCode 메소드의 동작은 보증되지 않습니다.

리스트의 구현에는, 포함할 수 있는 요소에 제한이 있는 것도 있습니다. 예를 들어, null 요소를 금지하는 구현이나, null 요소의 형태에 제한이 있는 구현도 있습니다. 부적당한 요소를 추가하려고 하면(자), 일반적으로 NullPointerException 또는 ClassCastException 와 같은 체크되지 않는 예외가 throw 됩니다. 부적당한 요소를 조회하려고 하면(자), 예외가 throw 되는 경우나, 다만 false 를 돌려주는 경우도 있습니다. 전의 동작을 금지하는 구현도 있으면, 후의 동작을 금지하는 구현도 있습니다. 좀 더 일반적으로 말하면(자), 리스트에의 삽입이 되지 않는 부적당한 요소를 처리하려고 하면(자), 예외가 throw 되는 경우도 있으면, 처리가 유효하게 되는 경우도 있습니다. 이 인터페이스에 관한 그러한 예외는, 「임의」의 스펙으로서 마크 됩니다.

이 인터페이스는,Java Collections Framework 의 멤버입니다.

도입된 버젼:
1.2
관련 항목:
Collection , Set , ArrayList , LinkedList , Vector , Arrays.asList(Object[]) , Collections.nCopies(int, Object) , Collections.EMPTY_LIST , AbstractList , AbstractSequentialList

메소드의 개요
 boolean add (E  e)
          지정된 요소를 리스트의 마지막에 추가합니다 (임의의 오퍼레이션).
 void add (int index, E  element)
          리스트내의 지정된 위치에, 지정된 요소를 삽입합니다 (임의의 오퍼레이션).
 boolean addAll (Collection <? extends E > c)
          지정된 컬렉션내의 모든 요소를, 지정된 컬렉션의 반복자에 의해 반환되는 순서로 리스트의 마지막에 추가합니다 (임의의 오퍼레이션).
 boolean addAll (int index, Collection <? extends E > c)
          지정된 컬렉션내의 모든 요소를, 리스트의 지정된 위치에 삽입합니다 (임의의 오퍼레이션).
 void clear ()
          모든 요소를 리스트로부터 삭제합니다 (임의의 오퍼레이션).
 boolean contains (Object  o)
          리스트로 지정된 요소가 있는 경우에 true 를 돌려줍니다.
 boolean containsAll (Collection <? > c)
          지정된 컬렉션의 모든 요소가 리스트에 포함되어 있는 경우에 true 를 돌려줍니다.
 boolean equals (Object  o)
          지정된 객체가 리스트와 동일한지 어떤지를 비교합니다.
 E get (int index)
          리스트내의 지정된 위치에 있는 요소를 돌려줍니다.
 int hashCode ()
          이 리스트의 해시 코드값를 돌려줍니다.
 int indexOf (Object  o)
          지정된 요소가 리스트내에서 최초로 검출된 위치의 인덱스를 돌려줍니다.
 boolean isEmpty ()
          리스트에 요소가 없는 경우에 true 를 돌려줍니다.
 Iterator <E > iterator ()
          이 리스트내의 요소를 적절한 순서로 반복 처리 하는 반복자를 돌려줍니다.
 int lastIndexOf (Object  o)
          지정된 요소가 리스트내에서 마지막에 검출된 위치의 인덱스를 돌려줍니다.
 ListIterator <E > listIterator ()
          이 리스트내의 요소를 적절한 순서로 반복 처리 하는 리스트 반복자를 돌려줍니다.
 ListIterator <E > listIterator (int index)
          리스트내의 요소를 적절한 순서로 반복 처리 하는, 리스트내의 지정된 위치로부터 개시하는 반복자를 돌려줍니다.
 E remove (int index)
          리스트내의 지정된 위치에 있는 요소를 삭제합니다 (임의의 오퍼레이션).
 boolean remove (Object  o)
          지정된 요소가 이 리스트에 있으면, 그 최초의 것을 리스트로부터 삭제합니다 (임의의 오퍼레이션).
 boolean removeAll (Collection <? > c)
          이 리스트로부터, 지정된 컬렉션에 포함되는 요소를 모두 삭제합니다 (임의의 오퍼레이션).
 boolean retainAll (Collection <? > c)
          지정된 컬렉션에 포함되고 있는 요소만이 리스트내에 포함되도록(듯이) 합니다 (임의의 오퍼레이션).
 E set (int index, E  element)
          리스트내의 지정된 위치에 있는 요소를, 지정된 요소에 옮겨놓습니다 (임의의 오퍼레이션).
 int size ()
          리스트내에 있는 요소의 수를 돌려줍니다.
 List <E > subList (int fromIndex, int toIndex)
          이 리스트의,fromIndex (이것을 포함한다)로부터 toIndex (이것을 포함하지 않는다)의 범위의 부분의 뷰를 돌려줍니다.
 Object [] toArray ()
          리스트내의 모든 요소를 적절한 순서로 (최초의 요소로부터 마지막 요소에) 포함하고 있는 배열을 돌려줍니다.
<T> T[]
toArray (T[] a)
          리스트내의 모든 요소를 적절한 순서로 (최초의 요소로부터 마지막 요소에) 포함하고 있는 배열을 돌려줍니다.
 

메소드의 상세

size

int size()
리스트내에 있는 요소의 수를 돌려줍니다. 이 리스트에 Integer.MAX_VALUE 보다 많은 요소가 있는 경우는,Integer.MAX_VALUE 를 돌려줍니다.

정의:
인터페이스 Collection <E > 내의 size
반환값:
리스트내의 요소수

isEmpty

boolean isEmpty()
리스트에 요소가 없는 경우에 true 를 돌려줍니다.

정의:
인터페이스 Collection <E > 내의 isEmpty
반환값:
리스트가 요소를 1 개나 보관 유지하고 있지 않는 경우는 true

contains

boolean contains(Object  o)
리스트로 지정된 요소가 있는 경우에 true 를 돌려줍니다. 즉, 리스트에,(o==null ?  e==null : o.equals(e)) 가 되는 요소 e 가 1 개 이상 포함되어 있는 경우에만 true 를 돌려줍니다.

정의:
인터페이스 Collection <E > 내의 contains
파라미터:
o - 리스트에 있을지 어떨지를 조사하는 요소
반환값:
리스트가, 지정된 요소를 보관 유지하고 있는 경우는 true
예외:
ClassCastException - 지정된 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 이며, 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능)

iterator

Iterator <E > iterator()
이 리스트내의 요소를 적절한 순서로 반복 처리 하는 반복자를 돌려줍니다.

정의:
인터페이스 Collection <E > 내의 iterator
정의:
인터페이스 Iterable <E > 내의 iterator
반환값:
리스트내의 요소를 적절한 순서로 반복 처리 하는 반복자

toArray

Object [] toArray()
리스트내의 모든 요소를 적절한 순서로 (최초의 요소로부터 마지막 요소에) 포함하고 있는 배열을 돌려줍니다.

반환되는 배열에의 참조를 이 리스트가 유지하지 않는다고 하는 점으로써, 이 배열은 안전합니다. 즉, 이 메소드는, 리스트가 배열에 연동하고 있는 경우에서도 새로운 배열을 할당합니다. 이 때문에, 호출측은, 반환된 배열을 자유롭게 변경할 수 있습니다.

메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다.

정의:
인터페이스 Collection <E > 내의 toArray
반환값:
리스트내의 모든 요소를 적절한 순서로 포함하고 있는 배열
관련 항목:
Arrays.asList(Object[])

toArray

<T> T[] toArray(T[] a)
리스트내의 모든 요소를 적절한 순서로 (최초의 요소로부터 마지막 요소에) 포함하고 있는 배열을 돌려줍니다. 반환되는 배열의 실행시의 형태는, 지정된 배열의 형태가 됩니다. 지정된 배열에 리스트가 들어가는 경우는, 그 배열에 돌려주어집니다. 그 이외의 경우는, 지정된 배열의 실행시의 형태와 리스트의 사이즈를 사용해 새로운 배열을 할당할 수 있습니다.

지정된 배열에 리스트가 들어가, 그 배열에 한층 더 여분의 영역이 있는 경우, 즉 배열에 리스트보다 많은 요소가 있는 경우, 배열로 리스트의 말미에 계속되는 요소는 null 로 설정됩니다. (이것은, 호출측이 리스트에 null 요소가 포함되지 않은 것을 알고 있는 경우에는, 리스트의 길이를 판정하는데 이용할 수 있다. )

toArray() 메소드와 같이, 이 메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다. 게다가 이 메소드에서는, 출력 배열의 실행시의 형태를 정확하게 제어할 수 있기 (위해)때문에, 환경에 따라서는 할당의 수고를 억제할 수가 있습니다.

x 가, 캐릭터 라인만으로부터 되는 리스트인 것을 알 수 있고 있으면(자) 가정합니다. 다음의 코드를 사용하면(자), 새롭게 할당할 수 있었던 String 의 배열에 리스트를 덤프 할 수 있습니다.

String[] y = x.toArray(new String[0]);
toArray(new Object[0]) 는, 기능의 점으로써 toArray() 와 동일합니다.

정의:
인터페이스 Collection <E > 내의 toArray
파라미터:
a - 이 리스트의 요소의 포함처가 되는 배열 (다만 충분히 큰 경우). 그 이외의 경우, 이 목적을 위해서(때문에) 같은 실행시의 형태의 새로운 배열을 할당할 수 있다
반환값:
리스트의 요소가 포함되고 있는 배열
예외:
ArrayStoreException - 지정된 배열의 실행시의 형태가, 리스트내의 각 요소의 실행시의 형태의 슈퍼타입이 아닌 경우
NullPointerException - 지정된 배열이 null 인 경우

add

boolean add(E  e)
지정된 요소를 리스트의 마지막에 추가합니다 (임의의 오퍼레이션).

이 오퍼레이션을 지원하는 리스트는, 리스트에 추가할 수 있는 요소에 제한을 더하는 경우가 있습니다. 특히, 리스트에는 null 요소의 추가를 거부하는 것도 있으면, 추가되는 요소의 형태에 대해 제한을 더하는 것도 있습니다. List 클래스는, List 에 추가할 수 있는 요소에 대해 제약이 있으면, 문서로 그것을 명확하게 지정할 필요가 있습니다.

정의:
인터페이스 Collection <E > 내의 add
파라미터:
e - 리스트에 추가되는 요소
반환값:
true (Collection.add(E) 로 지정되고 있는 대로)
예외:
UnsupportedOperationException - add 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 로, 이 리스트가 null 요소를 허용 하지 않는 경우
IllegalArgumentException - 이 요소의 프로퍼티이 원인으로, 이 리스트에 추가할 수 없는 경우

remove

boolean remove(Object  o)
지정된 요소가 이 리스트에 있으면, 그 최초의 것을 리스트로부터 삭제합니다 (임의의 오퍼레이션). 리스트에 그 요소가 없는 경우는, 변경되지 않습니다. 즉,(o==null ?  get(i) ==null : o.equals(get(i))) 가 되는, 최소의 인덱스치 i 를 가지는 요소를 삭제합니다 (그러한 요소가 존재하는 경우). 지정된 요소가 이 리스트에 포함되어 있었을 경우, 즉, 호출의 결과로서 이 리스트가 변경되었을 경우에 true 를 돌려줍니다.

정의:
인터페이스 Collection <E > 내의 remove
파라미터:
o - 리스트로부터 삭제되는 요소 (그 요소가 존재하는 경우)
반환값:
리스트가, 지정된 요소를 보관 유지하고 있는 경우는 true
예외:
ClassCastException - 지정된 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 이며, 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능)
UnsupportedOperationException - remove 오퍼레이션이 이 리스트로 지원되지 않는 경우

containsAll

boolean containsAll(Collection <? > c)
지정된 컬렉션의 모든 요소가 리스트에 포함되어 있는 경우에 true 를 돌려줍니다.

정의:
인터페이스 Collection <E > 내의 containsAll
파라미터:
c - 이 리스트에 있을지 어떨지를 조사하는 컬렉션
반환값:
지정된 컬렉션의 모든 요소가 리스트에 포함되어 있는 경우는 true
예외:
ClassCastException - 지정된 컬렉션의 1 개 이상의 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 컬렉션에 1 개 이상의 null 요소가 포함되어 있어 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능), 또는 지정된 컬렉션이 null 의 경우
관련 항목:
contains(Object)

addAll

boolean addAll(Collection <?  extends E > c)
지정된 컬렉션내의 모든 요소를, 지정된 컬렉션의 반복자에 의해 반환되는 순서로 리스트의 마지막에 추가합니다 (임의의 오퍼레이션). 오퍼레이션의 진행중에, 지정된 컬렉션이 변경되었을 경우의, 이 오퍼레이션의 동작은 정의되고 있지 않습니다. 즉, 지정된 컬렉션이 이 리스트로, 게다가 빈 상태(empty)이 아닌 경우에 일어납니다.

정의:
인터페이스 Collection <E > 내의 addAll
파라미터:
c - 이 리스트에 추가되는 요소를 포함한 컬렉션
반환값:
이 호출의 결과, 이 리스트가 변경되었을 경우는 true
예외:
UnsupportedOperationException - addAll 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException - 지정된 컬렉션이 있는 요소의 클래스가 원인으로, 이 리스트에 그 컬렉션을 추가할 수 없는 경우
NullPointerException - 지정된 컬렉션에 1 개 이상의 null 요소가 포함되어 있어 이 리스트가 null 요소를 허가하지 않는 경우, 또는 지정된 컬렉션이 null 의 경우
IllegalArgumentException - 지정된 컬렉션이 있는 요소가 있는 특성이 원인으로, 이 리스트에 그 컬렉션을 추가할 수 없는 경우
관련 항목:
add(Object)

addAll

boolean addAll(int index,
               Collection <?  extends E > c)
지정된 컬렉션내의 모든 요소를, 리스트의 지정된 위치에 삽입합니다 (임의의 오퍼레이션). 그 위치와 그 이후에 요소가 있는 경우는, 그것들을 오른쪽으로 이동해, 각 요소의 인덱스에 1 을 더합니다. 새로운 요소는, 지정된 컬렉션의 반복자에 의해 반환되는 순서로 리스트에 삽입됩니다. 오퍼레이션의 진행중에, 지정된 컬렉션이 변경되었을 경우의, 이 오퍼레이션의 동작은 정의되고 있지 않습니다. 즉, 지정된 컬렉션이 이 리스트로, 게다가 빈 상태(empty)이 아닌 경우에 일어납니다.

파라미터:
index - 지정된 컬렉션의 최초의 요소를 삽입하는 위치의 인덱스
c - 요소가 리스트에 추가되는 컬렉션
반환값:
이 호출의 결과, 이 리스트가 변경되었을 경우는 true
예외:
UnsupportedOperationException - addAll 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException - 지정된 컬렉션이 있는 요소의 클래스가 원인으로, 이 리스트에 그 컬렉션을 추가할 수 없는 경우
NullPointerException - 지정된 컬렉션에 1 개 이상의 null 요소가 포함되어 있어 이 리스트가 null 요소를 허가하지 않는 경우, 또는 지정된 컬렉션이 null 의 경우
IllegalArgumentException - 지정된 컬렉션이 있는 요소가 있는 특성이 원인으로, 이 리스트에 그 컬렉션을 추가할 수 없는 경우
IndexOutOfBoundsException - 인덱스가 범위외의 경우 (index < 0 || index > size())

removeAll

boolean removeAll(Collection <? > c)
이 리스트로부터, 지정된 컬렉션에 포함되는 요소를 모두 삭제합니다 (임의의 오퍼레이션).

정의:
인터페이스 Collection <E > 내의 removeAll
파라미터:
c - 이 리스트로부터 삭제되는 요소를 포함한 컬렉션
반환값:
이 호출의 결과, 이 리스트가 변경되었을 경우는 true
예외:
UnsupportedOperationException - removeAll 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException - 이 리스트가 있는 요소의 클래스가, 지정된 컬렉션과 호환이 아닌 경우 (생략 가능)
NullPointerException - 이 리스트내에 null 요소가 포함되어 지정된 컬렉션이 null 요소를 허가하지 않는 경우 (생략 가능). 또는 지정된 컬렉션이 null 의 경우
관련 항목:
remove(Object) , contains(Object)

retainAll

boolean retainAll(Collection <? > c)
지정된 컬렉션에 포함되고 있는 요소만이 리스트내에 포함되도록(듯이) 합니다 (임의의 오퍼레이션). 즉, 지정된 컬렉션에 포함되지 않은 요소를 리스트로부터 모두 삭제합니다.

정의:
인터페이스 Collection <E > 내의 retainAll
파라미터:
c - 이 리스트로 보관 유지되는 요소를 포함한 컬렉션
반환값:
이 호출의 결과, 이 리스트가 변경되었을 경우는 true
예외:
UnsupportedOperationException - retainAll 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException - 이 리스트가 있는 요소의 클래스가, 지정된 컬렉션과 호환이 아닌 경우 (생략 가능)
NullPointerException - 이 리스트내에 null 요소가 포함되어 지정된 컬렉션이 null 요소를 허가하지 않는 경우 (생략 가능). 또는 지정된 컬렉션이 null 의 경우
관련 항목:
remove(Object) , contains(Object)

clear

void clear()
모든 요소를 리스트로부터 삭제합니다 (임의의 오퍼레이션). 이 호출이 돌아오면(자), 이 리스트는 비웁니다.

정의:
인터페이스 Collection <E > 내의 clear
예외:
UnsupportedOperationException - clear 오퍼레이션이 이 리스트로 지원되지 않는 경우

equals

boolean equals(Object  o)
지정된 객체가 리스트와 동일한지 어떤지를 비교합니다. 지정된 객체도 리스트이며, 사이즈가 같아, 2 개의 리스트의 대응하는 요소가 모두 「동일하다」경우에만 true 를 돌려줍니다. 2 개의 요소 e1e2 는,(e1==null ? e2==null :e1.equals(e2)) 인 경우에 동일해집니다. 즉 2 개의 리스트는, 같은 요소가 같은 순서로 포함되어 있는 경우에 동일한 것으로서 정의됩니다. 이 정의에 의해,List 인터페이스의 구현이 달라도, equals 메소드가 올바르게 동작하는 것이 보증됩니다.

정의:
인터페이스 Collection <E > 내의 equals
오버라이드(override):
클래스 Object 내의 equals
파라미터:
o - 리스트와 동일한지 어떤지를 비교하는 객체
반환값:
지정된 객체가 리스트와 동일한 경우는 true
관련 항목:
Object.hashCode() , Hashtable

hashCode

int hashCode()
이 리스트의 해시 코드값를 돌려줍니다. 리스트의 해시 코드는, 다음의 계산의 결과로서 정의됩니다.
int hashCode = 1;
Iterator<E> i = list.iterator();
while (i.hasNext()) {
E obj = i.next();
hashCode = 31*hashCode + (obj==null ? 0 :obj.hashCode());
  }
 
이것에 의해,Object.hashCode() 의 일반 규약에 의해 요구되도록(듯이), 임의의 2 개의 리스트 list1list2 로,list1.equals(list2) 이면,list1.hashCode() ==list2.hashCode() 가 되는 것이 보증됩니다.

정의:
인터페이스 Collection <E > 내의 hashCode
오버라이드(override):
클래스 Object 내의 hashCode
반환값:
리스트의 해시 코드값
관련 항목:
Object.equals(Object) , equals(Object)

get

E  get(int index)
리스트내의 지정된 위치에 있는 요소를 돌려줍니다.

파라미터:
index - 반환되는 요소의 인덱스
반환값:
리스트내의 지정된 위치에 있는 요소
예외:
IndexOutOfBoundsException - 인덱스가 범위외의 경우 (index < 0 || index > size())

set

E  set(int index,
      E  element)
리스트내의 지정된 위치에 있는 요소를, 지정된 요소에 옮겨놓습니다 (임의의 오퍼레이션).

파라미터:
index - 치환되는 요소의 인덱스
element - 지정된 위치에 포함되는 요소
반환값:
지정된 위치에 이전 있던 요소
예외:
UnsupportedOperationException - set 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 로, 이 리스트가 null 요소를 허용 하지 않는 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
IndexOutOfBoundsException - 인덱스가 범위외의 경우 (index < 0 || index > size())

add

void add(int index,
         E  element)
리스트내의 지정된 위치에, 지정된 요소를 삽입합니다 (임의의 오퍼레이션). 그 위치와 그 이후에 요소가 있으면 그것들을 오른쪽으로 이동시켜, 각 요소의 인덱스에 1 을 더합니다.

파라미터:
index - 지정의 요소가 삽입되는 위치의 인덱스
element - 삽입되는 요소
예외:
UnsupportedOperationException - add 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException - 지정된 요소의 클래스가 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
NullPointerException - 지정된 요소가 null 로, 이 리스트가 null 요소를 허용 하지 않는 경우
IllegalArgumentException - 지정된 요소가 있는 프로퍼티이 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
IndexOutOfBoundsException - 인덱스가 범위외의 경우 (index < 0 || index > size())

remove

E  remove(int index)
리스트내의 지정된 위치에 있는 요소를 삭제합니다 (임의의 오퍼레이션). 후속의 요소는 왼쪽으로 이동합니다 (인덱스치로부터 1 을 감산). 리스트로부터 삭제된 요소가 돌려주어집니다.

파라미터:
index - 삭제되는 요소의 인덱스
반환값:
지정된 위치에 이전 있던 요소
예외:
UnsupportedOperationException - remove 오퍼레이션이 이 리스트로 지원되지 않는 경우
IndexOutOfBoundsException - 인덱스가 범위외의 경우 (index < 0 || index > size())

indexOf

int indexOf(Object  o)
지정된 요소가 리스트내에서 최초로 검출된 위치의 인덱스를 돌려줍니다. 지정된 요소가 리스트에 없는 경우는 -1 을 돌려줍니다. 즉,(o==null ?  get(i) ==null : o.equals(get(i))) 가 되는, 최소의 인덱스 i 를 돌려줍니다. 그러한 인덱스가 존재하지 않는 경우는 -1 을 돌려줍니다.

파라미터:
o - 검색하는 요소
반환값:
지정된 요소가 리스트내에서 최초로 검출된 위치의 인덱스. 그 요소가 리스트에 없는 경우는 -1
예외:
ClassCastException - 지정된 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 이며, 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능)

lastIndexOf

int lastIndexOf(Object  o)
지정된 요소가 리스트내에서 마지막에 검출된 위치의 인덱스를 돌려줍니다. 지정된 요소가 리스트에 없는 경우는 -1 을 돌려줍니다. 즉,(o==null ?  get(i) ==null : o.equals(get(i))) 가 되는, 최대의 인덱스 i 를 돌려줍니다. 그러한 인덱스가 존재하지 않는 경우는 -1 을 돌려줍니다.

파라미터:
o - 검색하는 요소
반환값:
지정된 요소가 리스트내에서 마지막에 검출된 위치의 인덱스. 그 요소가 리스트에 없는 경우는 -1
예외:
ClassCastException - 지정된 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException - 지정된 요소가 null 이며, 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능)

listIterator

ListIterator <E > listIterator()
이 리스트내의 요소를 적절한 순서로 반복 처리 하는 리스트 반복자를 돌려줍니다.

반환값:
리스트내의 요소를 적절한 순서로 반복 처리 하는 리스트 반복자

listIterator

ListIterator <E > listIterator(int index)
리스트내의 요소를 적절한 순서로 반복 처리 하는, 리스트내의 지정된 위치로부터 개시하는 반복자를 돌려줍니다. 지정된 인덱스는,next 의 최초의 호출에 의해 반환되는 최초의 요소를 나타냅니다. previous 의 최초의 호출은, 지정된 인덱스로부터 1 을 뺀 값의 인덱스를 가지는 요소를 돌려줍니다.

파라미터:
index - 리스트 반복자로부터 (next 메소드 호출에 의해) 반환되는 최초의 요소의 인덱스
반환값:
리스트내의 요소를 적절한 순서로 반복 처리 하는, 리스트내의 지정된 위치로부터 개시하는 리스트 반복자
예외:
IndexOutOfBoundsException - 인덱스가 범위외의 경우 (index < 0 || index > size())

subList

List <E > subList(int fromIndex,
                int toIndex)
이 리스트의,fromIndex (이것을 포함한다)로부터 toIndex (이것을 포함하지 않는다)의 범위의 부분의 뷰를 돌려줍니다. fromIndextoIndex 가 동일한 경우는, 빈 상태(empty)의 리스트가 돌려주어집니다. 반환되는 리스트는 이 리스트에 연동하고 있습니다. 그 때문에, 반환되는 리스트내에서의 비구조적인 변경은 이 리스트에 반영되어 이 리스트내에서의 변경은 반환되는 리스트에 반영됩니다. 반환되는 리스트는, 이 리스트에 의해 지원되고 있는, 리스트에 관련하는 옵션의 오퍼레이션을 모두 지원합니다.

이 메소드는, 배열에 일반적으로 볼 수 있는 것 같은, 명시적인 범위 조작을 위한 요구를 불필요하게 합니다. 리스트를 요구하는 어떠한 조작도 리스트 전체는 아니고, subList 뷰상에서 조작하는 것으로, 범위 조작으로서 사용할 수 있습니다. 예를 들어, 다음의 관용법은, 지정된 범위의 요소를 리스트로부터 삭제합니다.

list.subList(from, to). clear();
 
indexOflastIndexOf 에서도, 같은 관용법을 작성할 수 있습니다. Collections 클래스의 알고리즘이 모두 subList 에 적용할 수 있습니다.

배킹 리스트 (즉, 이 리스트)의 구조가, 반환된 리스트를 경유하지 않고 로 변경되었을 경우, 이 메소드로 반환된 리스트의 시멘틱스는 보증되지 않습니다. 구조의 변경이란, 리스트의 사이즈가 바뀌는 것 같은 변경이나, 진행중의 반복 처리가 부정한 결과에 끝나는 것 같은 변경입니다.

파라미터:
fromIndex - subList 의 하단점 (이것을 포함한다)
toIndex - subList 의 상단점 (이것을 포함하지 않는다)
반환값:
이 리스트내의 지정된 범위의 뷰
예외:
IndexOutOfBoundsException - 단 점의 인덱스치가 부정한 경우 (fromIndex < 0 || toIndex > size || fromIndex > toIndex)

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.