学而时习之,温故而知新.

迭代器是一种模式、详细可见其设计模式,可以使得序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部。

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

使用方法对比

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Main {public static void main(String[] args) {List list = new ArrayList();//实例化集合对象list.add("A"); //添加数据list.add("B");list.add("C");list.add("D");//迭代器用于while循环Iterator iterator = list.iterator();//创建迭代器while (iterator.hasNext()) { //判断是否有下一个元素String str = (String) iterator.next(); //获取集合元素System.out.println(str);}//迭代器用于for循环for (Iterator iterator1 = list.iterator(); iterator1.hasNext(); ) {String str = (String) iterator1.next();System.out.println(str);}//forfor (int i=0;i<list.size();i++){System.out.println(list.get(i));}//foreachfor (Object str:list){System.out.println(str);}}
}

用法的区分:

for一般可以用于简单的顺序集合,并且可以预测集合的大小;

foreach可以遍历任何集合或者数组,但是使用者需要知道遍历元素的类型。

iterator不需要知道元素类型和元素大小,通过hasnext()判断是否遍历完所有元素

for循环与迭代器的对比:

  * 效率上各有各的优势:

    ArrayList对随机访问比较快,而for循环中使用的get()方法,采用的即是随机访问的方法,

因此在ArrayList里for循环快。

    LinkedList则是顺序访问比较快,Iterator中的next()方法采用的是顺序访问方法,

因此在LinkedList里使用Iterator较快。

    主要还是要依据集合的数据结构不同的判断。

Java Iterator 使用相关推荐

  1. java中next的用法_关于java iterator的next()方法的用法

    UYOU next()是java迭代器类(Iterator)的方法,获得当前游标指向的下一个元素,详细说明和应用如下:1.迭代器(Iterator)介绍 迭代器是一种设计模式,它是一个对象,它可以遍历 ...

  2. java iterator对象_JAVA Iterator 详解 代码

    Iterator接口 1.所有实现了Collection接口的容器类都有一个Iterator方法用以返回一个实现了Iterator接口的对象 2.Iterator对象称为迭代器,用以方便的操作实现对象 ...

  3. java iterator如何知道数量_Java开发岗面试题基础篇(二)

    点击蓝字 关注wo们 老哥们,接上篇<Java开发岗面试题--基础篇(一)>,本期推出Java开发岗面试题--基础篇(二),来看看Java中的集合.多线程.异常体系等知识在面试中是怎么体现 ...

  4. java iterator 将int_ListIteratorlt;Egt; listIterator(int index)_Java.util包|WIKI教程

    ListIterator listIterator(int index) 描述 (Description) java.util.LinkedList.listIterator(int index)方法 ...

  5. Java Iterator 接口简介和简单用法.

    Iterator 的中文意思是迭代器. 单单从中文翻译也不易理解迭代器的意思啊,  其实Iterator是1个接口,  它的作用就是遍历容器的所有元素. 一, Iterator 接口简介 Iterat ...

  6. java iterator map_Java循环遍历输出map方法

    1.使用entries来遍历(entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry) 使用说明:该方法只能用于java 5或者更高的版本:如果遍历的map是一个空值,循 ...

  7. Java Iterator到Java 8 Stream

    有时在我的工作中,我需要与其他库集成,这些库将返回Iterator对象而不是列表. 从库的角度来看,这很好,但是当您想在返回的迭代器上使用Java 8流时,这可能是个问题. 有一种方法可以将Itera ...

  8. java iterator 嵌套_Java中的集合嵌套

    import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;publ ...

  9. java iterator获取索引_2020年Java面试题最新整理(1625)

    16.Java集合框架是什么? 说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用,Jav ...

最新文章

  1. mysql 生成json,结合CONCAT()和COALESCE()在MySQL中生成JSON
  2. a标签怎么传参_jsp页面中怎么利用a标签的href进行传递参数以及需要注意的地方...
  3. linux socat rpm,RabbitMQ系列(三)RabbitMQ Server的安装(基于Linux RPM)
  4. oracle 存储过程 db,oracle数据库的存储过程是什么?
  5. Swift - 发送消息(文本,图片,文件等)给微信好友或分享到朋友圈
  6. 通用汽车CES官宣电动皮卡 追赶福特、Rivian
  7. 解决Excel文件读取遇到值为null单元格会自动跳过的情况
  8. JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)
  9. android layoutinflater 高度,从LayoutInflater.inflate看View的创建过程
  10. 泛微OA主表与明细表的js操作
  11. Indy TCP/IP 组件里的几个常用方法
  12. Hive—日期格式使用总结
  13. 通讯:春运中的墨西哥“乘务员”
  14. 微软专利展示了具有灵活触控笔的双屏设备
  15. Formal Verification (二) FPV、APPs
  16. 三次握手与四次挥手过程详解
  17. 浅析“热更新”(热修复)解决方案
  18. linux的翻译系统开发,Linux下类似金山词霸的翻译软件
  19. 学习的榜样,进步的力量(来自中国人才热线的简历)
  20. macos系统终端命令失效

热门文章

  1. 进入Docker容器命令
  2. Python 中的魔术方法(双下划线开头和结尾的方法)
  3. 汇编语言将数据、代码、栈放入不同段基础
  4. LeetCode简单题之唯一摩尔斯密码词
  5. cmodel模拟器开发
  6. Yolov4性能分析(上)
  7. HarmonyOS 使用DevEcoStudio创建一个xml布局以及引用布局
  8. AtomicBoolean 的使用与介绍
  9. Android Build.VERSION.SDK_INT
  10. Android app 启动页尺寸大小 忘记了怎么办