• for循环和迭代器 Iterator对比


    https://www.jianshu.com/p/7b80de799d3a

    for each 以用来处理集合中的每个元素而不用考虑集合定下标。就是为了让用 Iterator 简单。但是删除的时候,区别就是在 remove,循环中调用集合remove会导致原集合变化导致错误,而应该用迭代器的 remove 方法。
    for 循环和迭代器 Iterator对比:
    ①采用 ArrayList 对随机访问比较快,而for循环中的get(),采用的即是随机访问的方法,因此在 ArrayList 里,for循环较快
    ②采用 LinkedList 则是顺序访问比较快,Iterator 中的 next(),采用的即是顺序访问的方法,因此在 LinkedList 里,使用 Iterator 较快。
    ③从数据结构角度分析,for循环适合访问顺序结构,可以根据下标快速获取指定元素。而 Iterator 适合访问链式结构,因为迭代器是通过next()和Pre()来定位的,可以访问没有顺序的集合。
    ④使用 Iterator 的好处在于可以用相同方式去遍历集合中元素,而无需考虑集合类的内部实现(只要它实现了 java.lang.Iterable 接口)。如果使用 Iterator 来遍历集合中元素,一旦不再使用 List 转而使用 Set 来组织数据,那遍历元素的代码不用做任何修改;如果使用 for 来遍历,那所有遍历此集合的算法都得做相应调整。因为List有序,Set无序,结构不同,它们的访问算法也不一样。(由此也说明遍历和集合本身分离了)

    作者:日常更新
    链接:https://www.jianshu.com/p/7b80de799d3a
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    RWIGS and LORBIT (1)
    时间档案:飞秒、皮秒、纳秒、微秒、毫秒、秒 (转自新浪)
    Linux Shell 文本处理工具集锦(转载)
    awk——getline
    PERL 正则表达式简介
    算法的性能
    排序算法与稳定性的理解
    实现双端队列
    实现栈
    实现队列
  • 原文地址:https://www.cnblogs.com/lllliuxiaoxia/p/15926471.html
Copyright © 2020-2023  润新知