|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
public interface List<E>
순서 붙일 수 있었던 컬렉션입니다. 「순서」라고도 불립니다. 이 인터페이스의 사용자는, 리스트내의 어디에 각 요소가 삽입될까를 정밀하게 제어할 수 있습니다. 사용자는 정수치의 인덱스 (리스트내의 위치)에 의해 요소에 액세스 하거나 리스트내의 요소를 검색하거나 할 수가 있습니다.
세트와는 달라, 일반적으로, 리스트는 중복 하는 요소를 허가합니다. 즉, 리스트는, 일반적으로 e1.equals(e2) 가 되는 것 같은,e1 와 e2 의 요소의 페어를 허가합니다. 또, 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 의 멤버입니다.
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 ()
리스트내의 모든 요소를 적절한 순서로 (최초의 요소로부터 마지막 요소에) 포함하고 있는 배열을 돌려줍니다. |
|
|
toArray (T[] a)
리스트내의 모든 요소를 적절한 순서로 (최초의 요소로부터 마지막 요소에) 포함하고 있는 배열을 돌려줍니다. |
메소드의 상세 |
---|
int size()
Collection <E >
내의 size
boolean isEmpty()
Collection <E >
내의 isEmpty
boolean contains(Object o)
Collection <E >
내의 contains
o
- 리스트에 있을지 어떨지를 조사하는 요소
ClassCastException
- 지정된 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException
- 지정된 요소가 null 이며, 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능)Iterator <E > iterator()
Collection <E >
내의 iterator
Iterable <E >
내의 iterator
Object [] toArray()
반환되는 배열에의 참조를 이 리스트가 유지하지 않는다고 하는 점으로써, 이 배열은 안전합니다. 즉, 이 메소드는, 리스트가 배열에 연동하고 있는 경우에서도 새로운 배열을 할당합니다. 이 때문에, 호출측은, 반환된 배열을 자유롭게 변경할 수 있습니다.
메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다.
Collection <E >
내의 toArray
Arrays.asList(Object[])
<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 인 경우boolean add(E e)
이 오퍼레이션을 지원하는 리스트는, 리스트에 추가할 수 있는 요소에 제한을 더하는 경우가 있습니다. 특히, 리스트에는 null 요소의 추가를 거부하는 것도 있으면, 추가되는 요소의 형태에 대해 제한을 더하는 것도 있습니다. List 클래스는, List 에 추가할 수 있는 요소에 대해 제약이 있으면, 문서로 그것을 명확하게 지정할 필요가 있습니다.
Collection <E >
내의 add
e
- 리스트에 추가되는 요소
Collection.add(E)
로 지정되고 있는 대로)
UnsupportedOperationException
- add 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException
- 지정된 요소의 클래스가 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
NullPointerException
- 지정된 요소가 null 로, 이 리스트가 null 요소를 허용 하지 않는 경우
IllegalArgumentException
- 이 요소의 프로퍼티이 원인으로, 이 리스트에 추가할 수 없는 경우boolean remove(Object o)
Collection <E >
내의 remove
o
- 리스트로부터 삭제되는 요소 (그 요소가 존재하는 경우)
ClassCastException
- 지정된 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException
- 지정된 요소가 null 이며, 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능)
UnsupportedOperationException
- remove 오퍼레이션이 이 리스트로 지원되지 않는 경우boolean containsAll(Collection <? > c)
Collection <E >
내의 containsAll
c
- 이 리스트에 있을지 어떨지를 조사하는 컬렉션
ClassCastException
- 지정된 컬렉션의 1 개 이상의 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException
- 지정된 컬렉션에 1 개 이상의 null 요소가 포함되어 있어 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능), 또는 지정된 컬렉션이 null 의 경우contains(Object)
boolean addAll(Collection <? extends E > c)
Collection <E >
내의 addAll
c
- 이 리스트에 추가되는 요소를 포함한 컬렉션
UnsupportedOperationException
- addAll 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException
- 지정된 컬렉션이 있는 요소의 클래스가 원인으로, 이 리스트에 그 컬렉션을 추가할 수 없는 경우
NullPointerException
- 지정된 컬렉션에 1 개 이상의 null 요소가 포함되어 있어 이 리스트가 null 요소를 허가하지 않는 경우, 또는 지정된 컬렉션이 null 의 경우
IllegalArgumentException
- 지정된 컬렉션이 있는 요소가 있는 특성이 원인으로, 이 리스트에 그 컬렉션을 추가할 수 없는 경우add(Object)
boolean addAll(int index, Collection <? extends E > c)
index
- 지정된 컬렉션의 최초의 요소를 삽입하는 위치의 인덱스c
- 요소가 리스트에 추가되는 컬렉션
UnsupportedOperationException
- addAll 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException
- 지정된 컬렉션이 있는 요소의 클래스가 원인으로, 이 리스트에 그 컬렉션을 추가할 수 없는 경우
NullPointerException
- 지정된 컬렉션에 1 개 이상의 null 요소가 포함되어 있어 이 리스트가 null 요소를 허가하지 않는 경우, 또는 지정된 컬렉션이 null 의 경우
IllegalArgumentException
- 지정된 컬렉션이 있는 요소가 있는 특성이 원인으로, 이 리스트에 그 컬렉션을 추가할 수 없는 경우
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())boolean removeAll(Collection <? > c)
Collection <E >
내의 removeAll
c
- 이 리스트로부터 삭제되는 요소를 포함한 컬렉션
UnsupportedOperationException
- removeAll 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException
- 이 리스트가 있는 요소의 클래스가, 지정된 컬렉션과 호환이 아닌 경우 (생략 가능)
NullPointerException
- 이 리스트내에 null 요소가 포함되어 지정된 컬렉션이 null 요소를 허가하지 않는 경우 (생략 가능). 또는 지정된 컬렉션이 null 의 경우remove(Object)
,
contains(Object)
boolean retainAll(Collection <? > c)
Collection <E >
내의 retainAll
c
- 이 리스트로 보관 유지되는 요소를 포함한 컬렉션
UnsupportedOperationException
- retainAll 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException
- 이 리스트가 있는 요소의 클래스가, 지정된 컬렉션과 호환이 아닌 경우 (생략 가능)
NullPointerException
- 이 리스트내에 null 요소가 포함되어 지정된 컬렉션이 null 요소를 허가하지 않는 경우 (생략 가능). 또는 지정된 컬렉션이 null 의 경우remove(Object)
,
contains(Object)
void clear()
Collection <E >
내의 clear
UnsupportedOperationException
- clear 오퍼레이션이 이 리스트로 지원되지 않는 경우boolean equals(Object o)
Collection <E >
내의 equals
Object
내의 equals
o
- 리스트와 동일한지 어떤지를 비교하는 객체
Object.hashCode()
,
Hashtable
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 개의 리스트 list1 와 list2 로,list1.equals(list2) 이면,list1.hashCode() ==list2.hashCode() 가 되는 것이 보증됩니다.
Collection <E >
내의 hashCode
Object
내의 hashCode
Object.equals(Object)
,
equals(Object)
E get(int index)
index
- 반환되는 요소의 인덱스
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())E set(int index, E element)
index
- 치환되는 요소의 인덱스element
- 지정된 위치에 포함되는 요소
UnsupportedOperationException
- set 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException
- 지정된 요소의 클래스가 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
NullPointerException
- 지정된 요소가 null 로, 이 리스트가 null 요소를 허용 하지 않는 경우
IllegalArgumentException
- 지정된 요소가 있는 프로퍼티이 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())void add(int index, E element)
index
- 지정의 요소가 삽입되는 위치의 인덱스element
- 삽입되는 요소
UnsupportedOperationException
- add 오퍼레이션이 이 리스트로 지원되지 않는 경우
ClassCastException
- 지정된 요소의 클래스가 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
NullPointerException
- 지정된 요소가 null 로, 이 리스트가 null 요소를 허용 하지 않는 경우
IllegalArgumentException
- 지정된 요소가 있는 프로퍼티이 원인으로, 이 리스트에 그 요소를 추가할 수 없는 경우
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())E remove(int index)
index
- 삭제되는 요소의 인덱스
UnsupportedOperationException
- remove 오퍼레이션이 이 리스트로 지원되지 않는 경우
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())int indexOf(Object o)
o
- 검색하는 요소
ClassCastException
- 지정된 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException
- 지정된 요소가 null 이며, 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능)int lastIndexOf(Object o)
o
- 검색하는 요소
ClassCastException
- 지정된 요소의 형태가, 이 리스트와 호환이 아닌 경우 (생략 가능)
NullPointerException
- 지정된 요소가 null 이며, 이 리스트가 null 요소를 허가하지 않는 경우 (생략 가능)ListIterator <E > listIterator()
ListIterator <E > listIterator(int index)
next
의 최초의 호출에 의해 반환되는 최초의 요소를 나타냅니다. previous
의 최초의 호출은, 지정된 인덱스로부터 1 을 뺀 값의 인덱스를 가지는 요소를 돌려줍니다.
index
- 리스트 반복자로부터 (next 메소드 호출에 의해) 반환되는 최초의 요소의 인덱스
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())List <E > subList(int fromIndex, int toIndex)
이 메소드는, 배열에 일반적으로 볼 수 있는 것 같은, 명시적인 범위 조작을 위한 요구를 불필요하게 합니다. 리스트를 요구하는 어떠한 조작도 리스트 전체는 아니고, subList 뷰상에서 조작하는 것으로, 범위 조작으로서 사용할 수 있습니다. 예를 들어, 다음의 관용법은, 지정된 범위의 요소를 리스트로부터 삭제합니다.
list.subList(from, to). clear();indexOf 및 lastIndexOf 에서도, 같은 관용법을 작성할 수 있습니다. Collections 클래스의 알고리즘이 모두 subList 에 적용할 수 있습니다.
배킹 리스트 (즉, 이 리스트)의 구조가, 반환된 리스트를 경유하지 않고 로 변경되었을 경우, 이 메소드로 반환된 리스트의 시멘틱스는 보증되지 않습니다. 구조의 변경이란, 리스트의 사이즈가 바뀌는 것 같은 변경이나, 진행중의 반복 처리가 부정한 결과에 끝나는 것 같은 변경입니다.
fromIndex
- subList 의 하단점 (이것을 포함한다)toIndex
- subList 의 상단점 (이것을 포함하지 않는다)
IndexOutOfBoundsException
- 단 점의 인덱스치가 부정한 경우 (fromIndex < 0 || toIndex > size || fromIndex > toIndex)
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.