([Reentrant]ReadWriteLock
), , - , .
- : - + ( "" ) + j >= i
. :
- ( ), .
- , (, ), ,
int modifyingFrom
, , "" ( j >= i
), modifyingFrom
(. docs) , . - , -, , , ,
modifyingFrom
. , , , modifyingFrom
, , . ( synchronized (obj)
- ), obj.notify()
, obj.wait()
( !).: ( boolean structuralChangeHappening = false
, modifyingFrom
x > <list size>
, ( , i < modifyingFrom
- get()
update()
). , , modifyingFrom
, .- , , , , , . , , .
- , (... ,
trimToSize()
- ), .
, , .
:
get(i)
( i
, ): , i
th , , .- ,
update([index =] i, element)
: i
s, . , . t
insert([index =] 5, element)
, get(i)
: t
modifyingFrom = 5
, , modifyingFrom
. , i < modifyingFrom
, () ; , insert(5)
, .add()
: , , , .- 7,
t_a
add(element)
, t_g
get([index =] 7)
:t_a
, modifyingFrom = 7
, , , t_g
, , index (= 7) >= modifyingFrom
t_a
.t_g
, , 7 < modifyingFrom
(modifyingFrom > <list size> (== 7)
, 4- ), , 7 >= <list size>
! t_a
.
, modifyingFrom
.
, , , , - ( ), .
, , . , , : , . , , tryUpdate(int, E)
, -, tryUpdate(int, E, Predicate<ArrayList>)
, , , ( , ).
, , - . .:)