정의
- java.util.concurrent.CopyOnWriteArrayList
- Java에서 제공하는 스레드 안전한 리스트 클래스
- 리스트의 크기가 매우 크고 변경이 빈번한 경우에는 성능 저하가 발생할 수 있음
특징
- 스레드 안전성: 리스트의 내용을 변경하는 작업이 복사본을 만들어 쓰기 때문에 다른 스레드가 영향을 받지 않아 여러 스레드가 동시에 CopyOnWriteArrayList에 접근해도 안전하게 사용 가능
- 읽기 작업이 많은 상황에 적합: 리스트에 대한 변경이 드물고, 대신에 자주 읽기 작업이 발생하는 경우에 유용
- 내부 복사: 리스트에 요소를 추가하거나 제거할 때마다 내부적으로 새로운 배열이 생성되어 변경 작업이 빈번하지 않은 경우에는 효율적이지만 변경 작업이 많이 발생하는 경우에는 성능이 저하될 수 있음
- 데이터 일관성 보장: 스레드 안전성을 위해 복사본을 만들어 사용하기 때문에, 리스트의 데이터에 대한 일관성이 보장
→ 다른 스레드가 변경 작업을 수행할 때에도 기존 스레드가 동일한 데이터를 읽을 수 있음
주요 메소드
- add() = 리스트에 요소 추가
- remove() = 리스트에서 지정한 요소 제거 (인덱스로도 가능)
- clear() = 리스트 비우기
- size() = 리스트 구성 요소 수 반환
- get() = 지정한 인덱스 위치에 있는 요소 반환
- iterator() = 리스트 반복자 반환
- contains() = 지정한 요소가 리스트에 포함되어 있는지 여부 반환
- toArray() = 리스트 → 배열로 변환
- set() = 지정한 인덱스 위치에 있는 요소를 지정한 요소로 대체
- isEmpty() = 리스트가 비어있는지 여부 반환
'Java > 알고리즘과 자료구조' 카테고리의 다른 글
RestTemplate와 WebClient (0) | 2024.04.12 |
---|---|
com.jcraft.jsch (0) | 2023.12.13 |
java.util.HashSet (0) | 2023.11.14 |
java.util.Stack (0) | 2023.06.21 |
java.lang.StringBuilder, StringBuffer (0) | 2023.05.16 |
댓글