黑马程序员技术交流社区

标题: 我觉得集合烦的遍历用toArray就很方便了,干嘛还要弄个迭代器,那么难理解!还是我菜! [打印本页]

作者: 铜雀台    时间: 2016-9-10 01:06
标题: 我觉得集合烦的遍历用toArray就很方便了,干嘛还要弄个迭代器,那么难理解!还是我菜!
我觉得集合烦的遍历用toArray就很方便了,干嘛还要弄个迭代器,那么难理解!还是我菜!
作者: jiubaK    时间: 2016-9-10 01:22
哟~漂亮妹子!必须回答下我的理解。
就拿ArrayList来说吧,其内部数据结构是数组,toArray方法是返回的内部数组的副本,也就不是原来存入的东西了!
[Java] 纯文本查看 复制代码
public Object[] toArray() {
    return Arrays.copyOf(elementData, size);
}
上面是底层代码。
而且,由于是返回副本,就会用到更多的内存。
当我们要遍历数组,在某个条件下要删除遍历到的元素时,Iterator删除更快,因为它内部就是遍历到了该位置,调用删除方法即可,而用toArray遍历的话,在某个条件下要删除遍历到的元素,调用删除方法底层还要去找到该元素,然后再删除。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2