哟~漂亮妹子!必须回答下我的理解。
就拿ArrayList来说吧,其内部数据结构是数组,toArray方法是返回的内部数组的副本,也就不是原来存入的东西了!
[Java] 纯文本查看 复制代码 public Object[] toArray() {
return Arrays.copyOf(elementData, size);
} 上面是底层代码。
而且,由于是返回副本,就会用到更多的内存。
当我们要遍历数组,在某个条件下要删除遍历到的元素时,Iterator删除更快,因为它内部就是遍历到了该位置,调用删除方法即可,而用toArray遍历的话,在某个条件下要删除遍历到的元素,调用删除方法底层还要去找到该元素,然后再删除。
|