>>169
for回ってるあいだに、list.size()が変わるし、listの中身も変わるよ。

まぁ、168のはあきらかにバグだから、

int size = list.size();
for (int i = 0; i < size; i++){
HogeObj obj = (HogeObj) list.remove(0);
.....
}

ってのと比べた方がいいと思うけど。文脈によっては、こっちの方が
いい事もあるし、165のがいい事もある。
もとのsetの使われ方による。