Java doc では、同期されたコレクションを繰り返して手動で再度同期する必要があると書かれています。何故ですか?返されたコレクションは既に同期されているためです。なぜこのようになっているのかよくわかりません。ありがとうございました。
Collection c = Collections.synchronizedCollection(myCollection);
...
synchronized(c) {
Iterator i = c.iterator(); // Must be in the synchronized block
while (i.hasNext())
foo(i.next());
}