|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
java.lang.Objectjava.util.concurrent.CopyOnWriteArrayList<E>
E
- 컬렉션내에 존재하는 요소의 형태public class CopyOnWriteArrayList<E>
기본으로 되는 배열의 새로운 카피를 작성하는 것으로써, 모든 추이적 조작 (add,set 등)이 구현되는 ArrayList
의 thread 세이프인 변수입니다.
일반적으로, 이것은 매우 효율이 나쁩니다만, traversal 조작이 변경을 수의 점으로써 큰폭으로 웃도는 경우에는, 대체 수단보다 효율이 좋은 경우가 있습니다. 또, 이것은, traversal를 동기 할 수 없는 경우나, 동기 하는 것을 바라지 않지만, 병행 thread간의 간섭을 배제할 필요가 있는 경우에 유용합니다. 「snapshot」스타일의 반복자 메소드는, 반복자의 작성 시점에서의 배열 상태에의 참조를 사용합니다. 이 배열이, 반복자의 유효기간내로 변경되는 것은 결코 없기 때문에, 간섭은 불가능하고, 반복자는 ConcurrentModificationException 를 throw 하지 않는 것이 보증됩니다.. 반복자는, 반복자의 작성 이후의 리스트에의 추가, 삭제, 또는 변경을 반영하지 않습니다. 반복자 자신에 대한 요소 변경 조작 (remove,set, 및 add)은, 지원되지 않습니다. 이러한 메소드는,UnsupportedOperationException 를 throw 합니다.
null 를 포함한 모든 요소가 허용 됩니다.
메모리 무결성 효과:다른 동시성 처리 컬렉션과 같이, 객체를 CopyOnWriteArrayList
에 배치하기 전의 thread내의 액션은, 다른 thread내의 CopyOnWriteArrayList
로부터 그 요소에 액세스 또는 삭제한 후의 액션보다 happen-before 입니다.
이 클래스는,Java Collections Framework 의 멤버입니다.
생성자 의 개요 | |
---|---|
CopyOnWriteArrayList ()
빈 상태(empty)의 리스트를 작성합니다. |
|
CopyOnWriteArrayList (Collection <? extends E > c)
지정된 컬렉션의 요소가 포함되어 있는 리스트를, 요소가 컬렉션의 반복자에 의해 반환되는 순서로 작성합니다. |
|
CopyOnWriteArrayList (E [] toCopyIn)
지정된 배열의 카피를 보관 유지하는 리스트를 작성합니다. |
메소드의 개요 | ||
---|---|---|
boolean |
add (E e)
리스트의 마지막으로, 지정된 요소를 추가합니다. |
|
void |
add (int index,
E element)
리스트내의 지정된 위치로 지정된 요소를 삽입합니다. |
|
boolean |
addAll (Collection <? extends E > c)
지정된 컬렉션내의 모든 요소를, 지정된 컬렉션의 반복자에 의해 반환되는 순서로 리스트의 마지막에 추가합니다. |
|
boolean |
addAll (int index,
Collection <? extends E > c)
지정된 컬렉션내의 모든 요소를, 리스트의 지정된 위치에 삽입합니다. |
|
int |
addAllAbsent (Collection <? extends E > c)
이 리스트에 포함되지 않은, 지정된 컬렉션내의 모든 요소를, 지정된 컬렉션의 반복자에 의해 반환되는 순서로 이 리스트의 마지막에 추가합니다. |
|
boolean |
addIfAbsent (E e)
요소가 존재하지 않는 경우, 요소를 추가합니다. |
|
void |
clear ()
리스트로부터 모든 요소를 삭제합니다. |
|
Object |
clone ()
이 리스트의 shallow 복사를 돌려줍니다. |
|
boolean |
contains (Object o)
리스트로 지정된 요소가 있는 경우에 true 를 돌려줍니다. |
|
boolean |
containsAll (Collection <? > c)
지정된 컬렉션의 모든 요소가 리스트에 포함되어 있는 경우에 true 를 돌려줍니다. |
|
boolean |
equals (Object o)
지정된 객체가 리스트와 동일한지 어떤지를 비교합니다. |
|
E |
get (int index)
리스트내의 지정된 위치에 있는 요소를 돌려줍니다. |
|
int |
hashCode ()
이 리스트의 해시 코드값를 돌려줍니다. |
|
int |
indexOf (E e,
int index)
지정된 요소를 리스트내에서 index 로부터 검색해 최초로 검출된 위치의 인덱스를 돌려줍니다. |
|
int |
indexOf (Object o)
지정된 요소가 리스트내에서 최초로 검출된 위치의 인덱스를 돌려줍니다. |
|
boolean |
isEmpty ()
리스트에 요소가 없는 경우에 true 를 돌려줍니다. |
|
Iterator <E > |
iterator ()
이 리스트내의 요소를 적절한 순서로 반복 처리 하는 반복자를 돌려줍니다. |
|
int |
lastIndexOf (E e,
int index)
지정된 요소를 리스트내에서 index 로부터 후 향해에 검색해 마지막에 검출된 위치의 인덱스를 돌려줍니다. |
|
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)
리스트내의 모든 요소를, 최초의 요소로부터 마지막 요소로 하는 적절한 순서로 포함하고 있는 배열을 돌려줍니다. |
|
String |
toString ()
이 리스트의 캐릭터 라인 표현을 돌려줍니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
finalize , getClass , notify , notifyAll , wait , wait , wait |
생성자 의 상세 |
---|
public CopyOnWriteArrayList()
public CopyOnWriteArrayList(Collection <? extends E > c)
c
- 최초로 보관 유지하고 있던 요소의 컬렉션
NullPointerException
- 지정된 컬렉션이 null 인 경우public CopyOnWriteArrayList(E [] toCopyIn)
toCopyIn
- 배열 (이 배열의 카피는 내부 배열로서 사용된다)
NullPointerException
- 지정된 배열이 null 인 경우메소드의 상세 |
---|
public int size()
Collection <E >
내의 size
List <E >
내의 size
public boolean isEmpty()
Collection <E >
내의 isEmpty
List <E >
내의 isEmpty
public boolean contains(Object o)
Collection <E >
내의 contains
List <E >
내의 contains
o
- 리스트에 있을지 어떨지를 조사하는 요소
public int indexOf(Object o)
List <E >
내의 indexOf
o
- 검색하는 요소
public int indexOf(E e, int index)
e
- 검색하는 요소index
- 검색 개시 위치의 인덱스
IndexOutOfBoundsException
- 지정된 인덱스가 부의 경우public int lastIndexOf(Object o)
List <E >
내의 lastIndexOf
o
- 검색하는 요소
public int lastIndexOf(E e, int index)
e
- 검색하는 요소index
- 역방향의 검색 개시 위치의 인덱스
IndexOutOfBoundsException
- 지정된 인덱스가, 이 리스트의 현재의 사이즈에 동일한가 그것보다 큰 경우public Object clone()
Object
내의 clone
Cloneable
public Object [] toArray()
반환되는 배열에의 참조를 리스트가 유지하지 않는다고 하는 점으로써, 이 배열은 안전합니다. 즉, 이 메소드는 새로운 배열을 할당할 필요가 있습니다. 이 때문에, 호출측은, 반환된 배열을 자유롭게 변경할 수 있습니다.
메소드는, 배열 베이스의 API 와 컬렉션 베이스의 API 의 사이의 중개역으로서 기능합니다.
Collection <E >
내의 toArray
List <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
a
- 배열이 충분한 크기를 가지는 경우는, 리스트의 요소가 포함되는 배열. 그렇지 않은 경우는, 요소를 포함하기 위해서 같은 실행시의 형태의 새로운 배열을 할당할 수 있다
ArrayStoreException
- 지정된 배열의 실행시의 형태가, 리스트내의 각 요소의 실행시의 형태의 슈퍼타입이 아닌 경우
NullPointerException
- 지정된 배열이 null 인 경우public E get(int index)
List <E >
내의 get
index
- 반환되는 요소의 인덱스
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public E set(int index, E element)
List <E >
내의 set
index
- 치환되는 요소의 인덱스element
- 지정된 위치에 포함되는 요소
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public boolean add(E e)
Collection <E >
내의 add
List <E >
내의 add
e
- 리스트에 추가되는 요소
Collection.add(E)
로 지정되었을 경우와 같이)public void add(int index, E element)
List <E >
내의 add
index
- 지정의 요소가 삽입되는 위치의 인덱스element
- 삽입되는 요소
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public E remove(int index)
List <E >
내의 remove
index
- 삭제되는 요소의 인덱스
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public boolean remove(Object o)
Collection <E >
내의 remove
List <E >
내의 remove
o
- 리스트로부터 삭제되는 요소 (그 요소가 존재하는 경우)
public boolean addIfAbsent(E e)
e
- 리스트에 추가되는 요소 (요소가 존재하지 않는 경우)
public boolean containsAll(Collection <? > c)
Collection <E >
내의 containsAll
List <E >
내의 containsAll
c
- 이 리스트에 있을지 어떨지를 조사하는 컬렉션
NullPointerException
- 지정된 컬렉션이 null 인 경우contains(Object)
public boolean removeAll(Collection <? > c)
Collection <E >
내의 removeAll
List <E >
내의 removeAll
c
- 이 리스트로부터 삭제되는 요소를 포함한 컬렉션
ClassCastException
- 이 리스트의 요소의 클래스가 지정된 컬렉션과 호환이 아닌 경우 (생략 가능)
NullPointerException
- 이 리스트내에 null 요소가 포함되어 지정된 컬렉션이 null 요소를 허가하지 않는 경우 (생략 가능). 또는 지정된 컬렉션이 null 의 경우remove(Object)
public boolean retainAll(Collection <? > c)
Collection <E >
내의 retainAll
List <E >
내의 retainAll
c
- 이 리스트로 보관 유지되는 요소를 포함한 컬렉션
ClassCastException
- 이 리스트의 요소의 클래스가 지정된 컬렉션과 호환이 아닌 경우 (생략 가능)
NullPointerException
- 이 리스트내에 null 요소가 포함되어 지정된 컬렉션이 null 요소를 허가하지 않는 경우 (생략 가능). 또는 지정된 컬렉션이 null 의 경우remove(Object)
public int addAllAbsent(Collection <? extends E > c)
c
- 리스트에 추가되는 요소를 포함한 컬렉션
NullPointerException
- 지정된 컬렉션이 null 인 경우addIfAbsent(Object)
public void clear()
Collection <E >
내의 clear
List <E >
내의 clear
public boolean addAll(Collection <? extends E > c)
Collection <E >
내의 addAll
List <E >
내의 addAll
c
- 리스트에 추가되는 요소를 포함한 컬렉션
NullPointerException
- 지정된 컬렉션이 null 인 경우add(Object)
public boolean addAll(int index, Collection <? extends E > c)
List <E >
내의 addAll
index
- 지정된 컬렉션으로부터 최초의 요소를 삽입하는 위치의 인덱스c
- 리스트에 추가되는 요소를 포함한 컬렉션
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())
NullPointerException
- 지정된 컬렉션이 null 인 경우add(int, Object)
public String toString()
String.valueOf(Object)
를 실행했는지와 같이 캐릭터 라인에 변환됩니다.
Object
내의 toString
public boolean equals(Object o)
List
이기도 해, 지정된 리스트로 iterator 에 의해 반환되는 요소의 순서가 이 리스트로 반복자에 의해 반환되는 순서와 같은 경우,true
를 돌려줍니다. 이 2 개의 순서는, 같은 길이를 가져, 순서내의 같은 위치에 있는 대응하는 요소가 「동일하다」경우, 같은 것이라고 보여집니다. 2 개의 요소 e1
및 e2
는,(e1==null ? e2==null :e1.equals(e2))
의 경우는 동일하다고 보여집니다.
Collection <E >
내의 equals
List <E >
내의 equals
Object
내의 equals
o
- 리스트와 동일한지 어떤지를 비교하는 객체
true
Object.hashCode()
,
Hashtable
public int hashCode()
이 구현은,List.hashCode()
내의 정의를 사용합니다.
Collection <E >
내의 hashCode
List <E >
내의 hashCode
Object
내의 hashCode
Object.equals(java.lang.Object)
,
Hashtable
public Iterator <E > iterator()
반환되는 반복자는, 반복자의 구축시의 리스트 상태의 snapshot를 제공합니다. 반복자의 traversal중에 동기화는 필요 없습니다. 반복자는,remove 메소드를 지원하지 않습니다.
Iterable <E >
내의 iterator
Collection <E >
내의 iterator
List <E >
내의 iterator
public ListIterator <E > listIterator()
반환되는 반복자는, 반복자의 구축시의 리스트 상태의 snapshot을 제공합니다. 반복자의 traversal중에 동기화는 필요 없습니다. 반복자는,remove,set, 또는 add 메소드를 지원하지 않습니다.
List <E >
내의 listIterator
public ListIterator <E > listIterator(int index)
next
의 최초의 호출에 의해 반환되는 최초의 요소를 나타냅니다. previous
의 최초의 호출은, 지정된 인덱스로부터 1 을 뺀 값의 인덱스를 가지는 요소를 돌려줍니다.
반환되는 반복자는, 반복자의 구축시의 리스트 상태의 snapshot를 제공합니다. 반복자의 traversal중에 동기화는 필요 없습니다. 반복자는,remove,set, 또는 add 메소드를 지원하지 않습니다.
List <E >
내의 listIterator
index
- 리스트 반복자로부터 (next 메소드 호출에 의해) 반환되는 최초의 요소의 인덱스
IndexOutOfBoundsException
- 인덱스가 범위외의 경우 (index < 0 || index > size())public List <E > subList(int fromIndex, int toIndex)
배킹 리스트 (즉, 이 리스트)의 구조가, 반환된 리스트를 경유하지 않고 로 변경되었을 경우, 이 메소드로 반환된 리스트의 시멘틱스는 보증되지 않습니다. 구조의 변경이란, 리스트의 사이즈가 바뀌는 것 같은 변경이나, 진행중의 반복 처리가 부정한 결과에 끝나는 것 같은 변경입니다.
List <E >
내의 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 도 참조해 주세요.