效果没有区别,但使用上区别很大。考虑在迭代中使用add()、remove()等方法使用迭代器调用Iterator.add()、Iterator.remove()后,Iterator.next()还是指向原来的元素而使用for(int i = 0; i< list.size(); i++)循环调用list.add(i, obj)后,下一个i指向的是新增的元素,而调用list.remove(i),则下一个i会跳过一个元素。因此大部分迭代的情况还是优先考虑使用迭代器。