java.util.concurrent.CopyOnWriteArrayList, ( Collection.toArray) .
, , .
:
for (Iterator<SomeClass> i = list.iterator(); i.hasNext();) {
SomeClass next = i.next();
if (need_to_remove){
i.remove(i);
}
}
for (int i = list.size() - 1; i >= 0; i--){
if (need_to_remove) {
list.remove(i);
}
}
, , , . :
private final ReadWriteLock lock = new ReentrantReadWriteLock();
final Lock w = lock.writeLock();
w.lock();
try {
} finally {
w.unlock();
}
.................................
final Lock r = lock.readLock();
r.lock();
try {
} finally {
r.unlock();
}
, .