|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.AbstractCollection <E>
java.util.AbstractList <E>
java.util.AbstractSequentialList <E>
java.util.LinkedList<E>
E
- 컬렉션내에 존재하는 요소의 형태public class LinkedList<E>
List 인터페이스의 링크 리스트의 구현입니다. 리스트의 임의의 오퍼레이션을 모두 구현해,null 를 포함해 모든 요소를 허가합니다. List 인터페이스를 구현하는 것 외에,LinkedList 클래스는, 리스트의 첨단 및 끝에 있는 요소를 취득 및 삭제하거나 첨단 및 끝에 요소를 삽입하거나 하는 메소드 (get,remove,insert)를 제공합니다. 이러한 오퍼레이션을 사용하면(자), 링크 리스트를 스택,큐, 또는 쌍방향 큐 로서 사용할 수 있게 됩니다.
이 클래스는 Deque 인터페이스를 구현하고 있어,add,poll 에 대해서 선입선출의 큐 오퍼레이션을 제공하는 것 외에 그 외의 스택 오퍼레이션이나 양단 큐 오퍼레이션도 제공합니다.
모든 오퍼레이션은, 이중 링크 리스트의 경우에 예기 되는 대로의 동작을 합니다. 리스트를 인덱스로 처리하는 오퍼레이션은, 리스트의 첨단 또는 끝 가운데, 지정한 인덱스에 가까운 (분)편으로부터 리스트를 횡단(traverse) 합니다.
이 구현은 동기화 되지 않습니다. 복수의 thread가 동시에 링크 리스트에 액세스 해, 그러한 적어도 1 개(살)이 구조적으로 리스트를 변경했을 경우에는, 외부에서 동기를 잡을 필요가 있습니다. 구조적인 변경과는 1 개 이상의 요소를 추가 또는 삭제하는 모든 처리입니다. 요소의 값만을 변경하는 처리는, 구조적인 변경이 아닙니다. 일반적으로, 리스트의 동기를 잡으려면 , 리스트를 자연스럽게 캡슐화하는 객체로 동기를 잡습니다.
이런 종류의 객체가 없는 경우에는,Collections.synchronizedList
메소드를 사용해 리스트를 「랩」할 필요가 있습니다. 이것은, 리스트에의 우발적인 비동기 액세스를 막기 위해서(때문에), 작성시에 실시하는 것이 최적입니다.
List list = Collections.synchronizedList(new LinkedList(...));
이 클래스의 iterator 및 listIterator 메소드에 의해 반환되는 반복자는, 「fail-fast」입니다. 반복자의 작성 후에, 반복자 자체의 remove 또는 add 메소드 이외 방법으로 리스트가 구조적으로 변경되면(자), 반복자는 ConcurrentModificationException
를 throw 합니다. 이와 같이, 병행해 변경을 하면(자), 반복자는, 장래의 예측할 수 없는 시점에 있어 예측할 수 없는 동작이 발생하는 위험을 회피하기 위해서, 즉시 한편 솜씨 자주(잘) 예외를 throw 합니다.
일반적으로, 비동기의 병행 변경이 있는 경우, 확실한 보증을 실시하는 것은 불가능해서, 반복자의 fail-fast의 동작을 보증할 수 없습니다. fail-fast 반복자는 최선 노력 원칙에 근거해,ConcurrentModificationException 를 throw 합니다. 따라서, 정확을 기하기 위해서 이 예외에 의존하는 프로그램을 쓰는 것은 잘못입니다. 「반복자의 fail-fast의 동작은 버그를 검출하기 위해서 사용해야 합니다」.
이 클래스는,Java Collections Framework 의 멤버입니다.
List
,
ArrayList
,
Vector
,
직렬화 된 형식 필드의 개요 |
---|
클래스 java.util. AbstractList 로부터 상속된 필드 |
---|
modCount |
생성자 의 개요 | |
---|---|
LinkedList ()
빈 상태(empty)의 리스트를 작성합니다. |
|
LinkedList (Collection <? extends E > c)
지정된 컬렉션의 요소가 포함되어 있는 리스트를, 요소가 컬렉션의 반복자에 의해 반환되는 순서로 작성합니다. |
메소드의 개요 | ||
---|---|---|
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 |
addFirst (E e)
리스트의 선두에, 지정된 요소를 삽입합니다. |
|
void |
addLast (E e)
리스트의 마지막으로, 지정된 요소를 추가합니다. |
|
void |
clear ()
리스트로부터 모든 요소를 삭제합니다. |
|
Object |
clone ()
LinkedList 의 shallow 복사를 돌려줍니다. |
|
boolean |
contains (Object o)
리스트로 지정된 요소가 있는 경우에 true 를 돌려줍니다. |
|
Iterator <E > |
descendingIterator ()
이 양단 큐내의 요소를 역순서로 반복 처리 하는 반복자를 돌려줍니다. |
|
E |
element ()
이 리스트의 선두 (최초의 요소)를 가져옵니다만, 삭제는 하지 않습니다. |
|
E |
get (int index)
리스트내의 지정된 위치에 있는 요소를 돌려줍니다. |
|
E |
getFirst ()
리스트내의 최초의 요소를 돌려줍니다. |
|
E |
getLast ()
리스트내의 마지막 요소를 돌려줍니다. |
|
int |
indexOf (Object o)
지정된 요소가 리스트내에서 최초로 검출된 위치의 인덱스를 돌려줍니다. |
|
int |
lastIndexOf (Object o)
지정된 요소가 리스트내에서 마지막에 검출된 위치의 인덱스를 돌려줍니다. |
|
ListIterator <E > |
listIterator (int index)
리스트내의 지정된 위치에서 시작되는, 리스트내의 요소를 적절한 순서로 반복하는 리스트 반복자를 돌려줍니다. |
|
boolean |
offer (E e)
지정된 요소를 이 리스트의 말미 (마지막 요소)에 추가합니다. |
|
boolean |
offerFirst (E e)
리스트의 선두에, 지정된 요소를 삽입합니다. |
|
boolean |
offerLast (E e)
리스트의 말미에, 지정된 요소를 삽입합니다. |
|
E |
peek ()
이 리스트의 선두 (최초의 요소)를 가져옵니다만, 삭제는 하지 않습니다. |
|
E |
peekFirst ()
리스트의 최초의 요소를 가져옵니다만, 삭제하지 않습니다. |
|
E |
peekLast ()
리스트의 마지막 요소를 가져옵니다만, 삭제하지 않습니다. |
|
E |
poll ()
이 리스트의 선두 (최초의 요소) 취득해, 삭제합니다. |
|
E |
pollFirst ()
리스트의 최초의 요소를 취득 및 삭제합니다. |
|
E |
pollLast ()
리스트의 마지막 요소를 취득 및 삭제합니다. |
|
E |
pop ()
이 리스트가 나타내는 스택으로부터 요소를 팝 합니다. |
|
void |
push (E e)
이 리스트가 나타내는 스택상에 요소를 푸쉬 합니다. |
|
E |
remove ()
이 리스트의 선두 (최초의 요소) 취득해, 삭제합니다. |
|
E |
remove (int index)
리스트의 지정된 위치에 있는 요소를 삭제합니다. |
|
boolean |
remove (Object o)
지정된 요소가 이 리스트에 있으면, 그 최초의 것을 리스트로부터 삭제합니다. |
|
E |
removeFirst ()
리스트로부터 최초의 요소를 삭제해 돌려줍니다. |
|
boolean |
removeFirstOccurrence (Object o)
이 리스트내에서 최초로 검출된, 지정된 요소를 삭제합니다 (리스트를 선두로부터 말미의 방향으로 횡단(traverse) 했을 경우). |
|
E |
removeLast ()
리스트로부터 마지막 요소를 삭제해 돌려줍니다. |
|
boolean |
removeLastOccurrence (Object o)
이 리스트내에서 마지막에 검출된, 지정된 요소를 삭제합니다 (리스트를 선두로부터 말미의 방향으로 횡단(traverse) 했을 경우). |
|
E |
set (int index,
E element)
리스트의 지정된 위치에 있는 요소를, 지정된 요소로 옮겨놓습니다. |
|
int |
size ()
리스트내에 있는 요소의 수를 돌려줍니다. |
|
Object [] |
toArray ()
리스트내의 모든 요소를 적절한 순서로 (최초의 요소로부터 마지막 요소에) 포함하고 있는 배열을 돌려줍니다. |
|
|
toArray (T[] a)
리스트내의 모든 요소를 적절한 순서로 (최초의 요소로부터 마지막 요소에) 포함하고 있는 배열을 돌려줍니다. |
클래스 java.util. AbstractSequentialList 로부터 상속된 메소드 |
---|
iterator |
클래스 java.util. AbstractList 로부터 상속된 메소드 |
---|
equals , hashCode , listIterator , removeRange , subList |
클래스 java.util. AbstractCollection 로부터 상속된 메소드 |
---|
containsAll , isEmpty , removeAll , retainAll , toString |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
finalize , getClass , notify , notifyAll , wait , wait , wait |
인터페이스 java.util. List 로부터 상속된 메소드 |
---|
containsAll , equals , hashCode , isEmpty , iterator , listIterator , removeAll , retainAll , subList |
인터페이스 java.util. Deque 로부터 상속된 메소드 |
---|
iterator |
생성자 의 상세 |
---|
public LinkedList()
public LinkedList(Collection <? extends E > c)
c
- 요소가 리스트에 배치되는 컬렉션
NullPointerException
- 지정된 컬렉션이 null 인 경우메소드의 상세 |
---|
public E getFirst()
Deque <E >
내의 getFirst
NoSuchElementException
- 리스트가 빈 상태(empty)의 경우public E getLast()
Deque <E >
내의 getLast
NoSuchElementException
- 리스트가 빈 상태(empty)의 경우public E removeFirst()
Deque <E >
내의 removeFirst
NoSuchElementException
- 리스트가 빈 상태(empty)의 경우public E removeLast()
Deque <E >
내의 removeLast
NoSuchElementException
- 리스트가 빈 상태(empty)의 경우public void addFirst(E e)
Deque <E >
내의 addFirst
e
- 추가하는 요소public void addLast(E e)
이 메소드는,add(E)
와 동등합니다.
Deque <E >
내의 addLast
e
- 추가하는 요소public boolean contains(Object o)
Collection <E >
내의 contains
Deque <E >
내의 contains
List <E >
내의 contains
AbstractCollection <E >
내의 contains
o
- 리스트에 있을지 어떨지를 조사하는 요소
public int size()
Collection <E >
내의 size
Deque <E >
내의 size
List <E >
내의 size
AbstractCollection <E >
내의 size
public boolean add(E e)
이 메소드는,addLast(E)
와 동등합니다.
Collection <E >
내의 add
Deque <E >
내의 add
List <E >
내의 add
Queue <E >
내의 add
AbstractList <E >
내의 add
e
- 리스트에 추가되는 요소
Collection.add(E)
로 지정되고 있는 대로)public boolean remove(Object o)
Collection <E >
내의 remove
Deque <E >
내의 remove
List <E >
내의 remove
AbstractCollection <E >
내의 remove
o
- 리스트로부터 삭제되는 요소 (그 요소가 존재하는 경우)
public boolean addAll(Collection <? extends E > c)
Collection <E >
내의 addAll
List <E >
내의 addAll
AbstractCollection <E >
내의 addAll
c
- 요소가 리스트에 추가되는 컬렉션
NullPointerException
- 지정된 컬렉션이 null 인 경우AbstractCollection.add(Object)
public boolean addAll(int index, Collection <? extends E > c)
List <E >
내의 addAll
AbstractSequentialList <E >
내의 addAll
index
- 지정된 컬렉션의 최초의 요소를 삽입하는 위치의 인덱스c
- 요소가 리스트에 추가되는 컬렉션
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())
NullPointerException
- 지정된 컬렉션이 null 인 경우public void clear()
Collection <E >
내의 clear
List <E >
내의 clear
AbstractList <E >
내의 clear
public E get(int index)
List <E >
내의 get
AbstractSequentialList <E >
내의 get
index
- 반환되는 요소의 인덱스
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public E set(int index, E element)
List <E >
내의 set
AbstractSequentialList <E >
내의 set
index
- 치환되는 요소의 인덱스element
- 지정된 위치에 포함되는 요소
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public void add(int index, E element)
List <E >
내의 add
AbstractSequentialList <E >
내의 add
index
- 지정의 요소가 삽입되는 위치의 인덱스element
- 삽입되는 요소
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public E remove(int index)
List <E >
내의 remove
AbstractSequentialList <E >
내의 remove
index
- 삭제되는 요소의 인덱스
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public int indexOf(Object o)
List <E >
내의 indexOf
AbstractList <E >
내의 indexOf
o
- 검색하는 요소
public int lastIndexOf(Object o)
List <E >
내의 lastIndexOf
AbstractList <E >
내의 lastIndexOf
o
- 검색하는 요소
public E peek()
Deque <E >
내의 peek
Queue <E >
내의 peek
public E element()
Deque <E >
내의 element
Queue <E >
내의 element
NoSuchElementException
- 리스트가 빈 상태(empty)의 경우public E poll()
Deque <E >
내의 poll
Queue <E >
내의 poll
public E remove()
Deque <E >
내의 remove
Queue <E >
내의 remove
NoSuchElementException
- 리스트가 빈 상태(empty)의 경우public boolean offer(E e)
Deque <E >
내의 offer
Queue <E >
내의 offer
e
- 추가하는 요소
Queue.offer(E)
로 지정되고 있는 대로)public boolean offerFirst(E e)
Deque <E >
내의 offerFirst
e
- 삽입되는 요소
Deque.offerFirst(E)
로 지정되고 있는 대로)public boolean offerLast(E e)
Deque <E >
내의 offerLast
e
- 삽입되는 요소
Deque.offerLast(E)
로 지정되고 있는 대로)public E peekFirst()
Deque <E >
내의 peekFirst
public E peekLast()
Deque <E >
내의 peekLast
public E pollFirst()
Deque <E >
내의 pollFirst
public E pollLast()
Deque <E >
내의 pollLast
public void push(E e)
이 메소드는,addFirst(E)
와 동등합니다.
Deque <E >
내의 push
e
- 푸쉬 하는 요소public E pop()
이 메소드는,removeFirst()
와 동등합니다.
Deque <E >
내의 pop
NoSuchElementException
- 리스트가 빈 상태(empty)의 경우public boolean removeFirstOccurrence(Object o)
Deque <E >
내의 removeFirstOccurrence
o
- 리스트로부터 삭제되는 요소 (그 요소가 존재하는 경우)
public boolean removeLastOccurrence(Object o)
Deque <E >
내의 removeLastOccurrence
o
- 리스트로부터 삭제되는 요소 (그 요소가 존재하는 경우)
public ListIterator <E > listIterator(int index)
리스트 반복자는 「fail-fast」입니다. 반복자의 작성 후에 리스트 반복자 자체의 remove 또는 add 메소드 이외 방법으로 리스트가 구조적으로 변경되면(자), 리스트 반복자는 ConcurrentModificationException 를 throw 합니다. 이와 같이, 병행해 변경을 하면(자), 반복자는, 장래의 예측할 수 없는 시점에 있어 예측할 수 없는 동작이 발생하는 위험을 회피하기 위해서, 즉시 한편 솜씨 자주(잘) 예외를 throw 합니다.
List <E >
내의 listIterator
AbstractSequentialList <E >
내의 listIterator
index
- 리스트 반복자로부터 (next 호출에 의해) 반환되는 최초의 요소의 인덱스
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())List.listIterator(int)
public Iterator <E > descendingIterator()
Deque
의 기술:
Deque <E >
내의 descendingIterator
public Object clone()
Object
내의 clone
Cloneable
public Object [] toArray()
반환되는 배열에의 참조를 이 리스트가 유지하지 않는다고 하는 점으로써, 이 배열은 안전합니다. (즉, 이 메소드는 새로운 배열을 할당한다). 이 때문에, 호출측은, 반환된 배열을 자유롭게 변경할 수 있습니다.
메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다.
Collection <E >
내의 toArray
List <E >
내의 toArray
AbstractCollection <E >
내의 toArray
Arrays.asList(Object[])
public <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
List <E >
내의 toArray
AbstractCollection <E >
내의 toArray
a
- 리스트의 요소의 포함처가 되는 배열 (다만 충분히 큰 경우). 그 이외의 경우, 이 목적을 위해서(때문에) 같은 실행시의 형태의 새로운 배열을 할당할 수 있다
ArrayStoreException
- 지정된 배열의 실행시의 형태가, 리스트내의 각 요소의 실행시의 형태의 슈퍼타입이 아닌 경우
NullPointerException
- 지정된 배열이 null 인 경우
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.