目录

一、Java中Iterator迭代器详解

1、为什么需要迭代器

2、迭代器长什么样子

3、如何使用迭代器

使用步骤:

代码演示:

迭代器可以简化为增强型for循环:

4、Iterator与ListIterator有什么区别


一、Java中Iterator迭代器详解

1、为什么需要迭代器

Java中的集合各式各样,很多应用场景下需要对集合里面的元素进行遍历,有的集合有下标(ArrayList、Vector、LinkedList),有的集合没有下标。有下标的集合可以轻易地通过下标进行遍历,没有下标的集合遍历起来就非常麻烦,因此Java引入了迭代器模式迭代器可以使得我们能够使用一种通用的方式遍历各种集合元素

2、迭代器长什么样子

// 迭代器主要提供下面这三个方法
public interface Iterator<E> {// 是否有下一个元素boolean hasNext();// 获取下一个元素E next();// 删除元素void remove();
}

3、如何使用迭代器

使用步骤:

  • 获取迭代器;

  • 判断是否存在下一个元素;

  • 获取下一个元素;

代码演示:

package com.zibo.java.february.third;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class MyListStudy {public static void main(String[] args) {// 创建一个listList<String> list = new ArrayList<>();list.add("大哥");list.add("二哥");list.add("三哥");list.add("四哥");// 获取迭代器;Iterator<String> iterator = list.iterator();// 判断是否存在下一个元素;while (iterator.hasNext()){// 获取下一个元素;System.out.println(iterator.next());}}
}

迭代器可以简化为增强型for循环:

package com.zibo.java.february.third;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class MyListStudy {public static void main(String[] args) {// 创建一个listList<String> list = new ArrayList<>();list.add("大哥");list.add("二哥");list.add("三哥");list.add("四哥");// 获取迭代器;// 判断是否存在下一个元素;for (String s : list) {// 获取下一个元素;System.out.println(s);}// 增强型for循环内部使用的就是迭代器}
}

4、Iterator与ListIterator有什么区别

Iterator只能正向遍历集合,适用于获取移除元素。ListIerator继承自Iterator,专门针对List,可以从两个方向遍历List,同时支持元素的修改;

Java中Iterator迭代器详解相关推荐

  1. java中iterator用法_java_详解Java中Iterator迭代器的用法,迭代器(Iterator)迭代 - phpStudy...

    详解Java中Iterator迭代器的用法 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为&quo ...

  2. Java中JDBC连接数据库详解

    今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...

  3. JAVA中的Random详解

    JAVA中的Random详解 首先,在JDK自带的常用的random中有两个,这俩都是产生随机数的,不过一个是util下的random,另外一个是Math下的.我们分别介绍一下 util中的rando ...

  4. java中new关键字详解

    java中new关键字详解 在java中我们可以经常使用new来创建一个对象,但是这对于初学者来说可能只会使用却不能理解new关键字和它的语法 new关键字的语法 注意使用前先导包,一般我们使用ide ...

  5. Java中super关键字详解

    Java中super关键字详解 super有什么用? super什么时候不可以省略呢? super在内存图中是如何存在的呢? super使用时的注意事项 super有什么用? (1)当子类中构造方法第 ...

  6. Java中的byte详解

    Java中的byte详解 介绍 byte,即字节,由8位的二进制组成.在Java中,byte类型的数据是8位带符号的二进制数. 在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在 ...

  7. Java 中IO流详解(附实例代码/面试题)

    Java I/O流详解 前言 一.I/O流是什么? 二.IO流分类: 1. 流程图: io流对象 2. io流的优缺点: 3. io 流Java中用途有哪些? 三.一些 io 实例 四.面试题: 前言 ...

  8. Java中Map用法详解

    原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...

  9. 【转载】java中泛型使用详解

    引入 Type接口 Class类 Method类 Field类 ParameterizedType接口 TypeVariable接口 类中定义泛型变量 方法中定义泛型变量 方法中泛型参数和泛型返回值 ...

最新文章

  1. R语言ggplot2可视化为复杂图自定义图例、手动构造图例(legend)实战
  2. 【小练习06】HTML+CSS--教学大讲堂
  3. java类与对象的最初理解
  4. 32要烧写3个bin文件_入门教程3:如何给ESP8266烧录Gagent固件,快速接入机智云实现透传功能...
  5. 超适合小白的python新手教程
  6. CVPR 2022 论文和开源项目合集
  7. 项目延期的4大原因及解决方案!
  8. Windows无法连接到打印机、打印机连接出现0X00000bcb错误应该如何解决?这应该是是最全面的解决方法啦~~
  9. java编程指南100本电子书
  10. android显示txt文件的组件,Android文本控件的介绍
  11. Glide内存占用优化
  12. shell脚本:备份数据库、代码上线
  13. vue+element_ui上传文件,并传递额外参数
  14. Ubuntu16.04分辨率过低,无法调高
  15. 基于ServiceStage的微服务开发与部署(二)
  16. 国产电源厂家及具体型号pin-to-pin替代手册
  17. 为什么E-GREEDY算法中e越小,性能会更好
  18. ASP.NET Core WEB部署:Kestrel
  19. 组织能力建设的三部曲
  20. 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫...

热门文章

  1. 姜子牙的“文伐十二节”:文王问太公曰:“文伐之法奈何?”
  2. nextTick的原理以及为什么nextTick优先promise
  3. 01、freecplus框架简介
  4. k8s查看pod的yaml文件_K8S教程(6)YAML资源配置清单
  5. 剑南春把文字游戏玩明白了
  6. 【恒指早盘分析】9.4恒指早盘分析及最新资讯
  7. 各种manjaro安装问题大全:缺失依赖关系 无法下载 已损坏 签名未知信任 包结构错误
  8. 学习使用js的 random() 方法生成随机数
  9. linux配额管理的三要素,linux的配额管理
  10. 猜一个1~100的数字