본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Java] What is "CopyOnWriteArrayList"

by 돼지왕 왕돼지 2017. 2. 22.
반응형

 [Java] What is "CopyOnWriteArrayList"


ADD, add method, addall, addallabsent, addifabsent, aggregate operation, API, Atomic, Block, clear, collection, ConcurrentModificationException, COPY, copyonwritearraylist, e, index search, indexOf, Interface, iterator, Java, lastIndexof, list, random access list, Read, remove, Set, thread safe, UnsupportedOperationException, [Java] What is


http://developer.android.com/reference/java/util/concurrent/CopyOnWriteArrayList.html

-
Thread-safe 한 random access list.


-
Read 는 block 이 걸리지 않는다.
addAll, clear 와 같은 aggregate operation 은 atomic 하다.


-
Iterator 를 사용할 때는 copy 본을 사용하기 때문에 ConcurrentModificationException 이 절대 발생하지 않는다.
대신 Iterator 가 최근 state 를 항상 반영하는 것은 아니다.


-
Iterator 가 copy 본이기 때문에 iterator 에 대한 remove, add, set 등은 UnsupportedOperationException 을 반환한다.


-
일반 List interface 에 비해 더 많은 API 를 제공하는데,
indexOf(E, int), lastIndexOf(E, int) 와 같은 index search 와
addIfAbsent(E), addAllAbsent(Collection) 과 같은 add method 들도 제공한다.





반응형

댓글