A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

我觉得集合烦的遍历用toArray就很方便了,干嘛还要弄个迭代器,那么难理解!还是我菜!

1 个回复

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

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马