08/05/17 01:42:45
>>170
>質問1
はい。
ただし、例えば以下のようなことをしたい場合は、containsやaddがそれぞれ単体で同期されてても
間に割り込まれる可能性があるので、全体をsynchronizedで囲まないと望む結果にはならない。
if ( list.contains(x) == false ) list.add(x);
>質問2
はい。
どのみち、iterator、hasNext、nextをそれぞれ単体で同期したところで、
間にaddが割り込まれたらConcurrentModificationExceptionが起きるから、使い物にならないと思う。
ところで、CopyOnWriteArrayListという便利なものもあるよ。
状況によってはおすすめ。