Java中Iterator迭代器详解
目录
一、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迭代器详解相关推荐
- java中iterator用法_java_详解Java中Iterator迭代器的用法,迭代器(Iterator)迭代 - phpStudy...
详解Java中Iterator迭代器的用法 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为&quo ...
- Java中JDBC连接数据库详解
今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...
- JAVA中的Random详解
JAVA中的Random详解 首先,在JDK自带的常用的random中有两个,这俩都是产生随机数的,不过一个是util下的random,另外一个是Math下的.我们分别介绍一下 util中的rando ...
- java中new关键字详解
java中new关键字详解 在java中我们可以经常使用new来创建一个对象,但是这对于初学者来说可能只会使用却不能理解new关键字和它的语法 new关键字的语法 注意使用前先导包,一般我们使用ide ...
- Java中super关键字详解
Java中super关键字详解 super有什么用? super什么时候不可以省略呢? super在内存图中是如何存在的呢? super使用时的注意事项 super有什么用? (1)当子类中构造方法第 ...
- Java中的byte详解
Java中的byte详解 介绍 byte,即字节,由8位的二进制组成.在Java中,byte类型的数据是8位带符号的二进制数. 在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在 ...
- Java 中IO流详解(附实例代码/面试题)
Java I/O流详解 前言 一.I/O流是什么? 二.IO流分类: 1. 流程图: io流对象 2. io流的优缺点: 3. io 流Java中用途有哪些? 三.一些 io 实例 四.面试题: 前言 ...
- Java中Map用法详解
原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...
- 【转载】java中泛型使用详解
引入 Type接口 Class类 Method类 Field类 ParameterizedType接口 TypeVariable接口 类中定义泛型变量 方法中定义泛型变量 方法中泛型参数和泛型返回值 ...
最新文章
- R语言ggplot2可视化为复杂图自定义图例、手动构造图例(legend)实战
- 【小练习06】HTML+CSS--教学大讲堂
- java类与对象的最初理解
- 32要烧写3个bin文件_入门教程3:如何给ESP8266烧录Gagent固件,快速接入机智云实现透传功能...
- 超适合小白的python新手教程
- CVPR 2022 论文和开源项目合集
- 项目延期的4大原因及解决方案!
- Windows无法连接到打印机、打印机连接出现0X00000bcb错误应该如何解决?这应该是是最全面的解决方法啦~~
- java编程指南100本电子书
- android显示txt文件的组件,Android文本控件的介绍
- Glide内存占用优化
- shell脚本:备份数据库、代码上线
- vue+element_ui上传文件,并传递额外参数
- Ubuntu16.04分辨率过低,无法调高
- 基于ServiceStage的微服务开发与部署(二)
- 国产电源厂家及具体型号pin-to-pin替代手册
- 为什么E-GREEDY算法中e越小,性能会更好
- ASP.NET Core WEB部署:Kestrel
- 组织能力建设的三部曲
- 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫...
热门文章
- 姜子牙的“文伐十二节”:文王问太公曰:“文伐之法奈何?”
- nextTick的原理以及为什么nextTick优先promise
- 01、freecplus框架简介
- k8s查看pod的yaml文件_K8S教程(6)YAML资源配置清单
- 剑南春把文字游戏玩明白了
- 【恒指早盘分析】9.4恒指早盘分析及最新资讯
- 各种manjaro安装问题大全:缺失依赖关系 无法下载 已损坏 签名未知信任 包结构错误
- 学习使用js的 random() 方法生成随机数
- linux配额管理的三要素,linux的配额管理
- 猜一个1~100的数字