java学习笔记21(迭代器)
时间:2019-03-21
本文章向大家介绍java学习笔记21(迭代器),主要包括java学习笔记21(迭代器)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
java中有很多集合,内部有各种的存储的方法,取出的方法也各不相同,那么有没有一种通用的方法来取出来呢?
java提供的遍历集合元素的方法有两种:
1.for-each结构(增强型for循环)
格式: for(Object obj:collection)System.out.println(obj);//表示一行输出一个元素 用法举例:
import java.util.ArrayList; public class Demo2 { public static void main(String[] args) { forlxDemo(); } private static void forlxDemo(){ ArrayList<String> arr=new ArrayList(); arr.add("abc"); arr.add("def"); arr.add("ghi"); for (String s : arr) {//增强性for循环,优点:代码少了,方便遍历,缺点:没有下标,无法操作集合的元素 System.out.println(s); } } }
2.iterator(迭代器)
迭代器:Iterator接口,翻译成中文是迭代器;典型用法如下
Iterator it = c.iterator();//用于创建一个迭代器对象 while (it.hasNext()) {//it.hasNext()判断迭代器中是否有下一个元素,如果有返回true。Iterator中的next方法返回迭代其中的下一个元素 Object next = it.next();//取出下一个元素 }
举例说明:
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class Demo1 { public static void main(String[] args) { IteratorDemo(); } private static void IteratorDemo() { //集合可以指定存储类型,也可以不写 //集合中可以存储任意类型的对象,但是只能存储同一种类型的 //当不指定存储类型,集合内存储不同数据类型的对象时,默认的存储类型为Object类型,Object为所有类的祖宗 Collection c=new ArrayList(); c.add("hello"); c.add("java"); Iterator it = c.iterator();//用于创建一个迭代器对象 while (it.hasNext()) {//it.hasNext()判断迭代器中是否有下一个元素 String str = (String) it.next();//it.next()默认返回Object类型,强转为String类型
/*if(str.equals("hello")){//迭代器的并发异常,不允许在迭代过程中,修改集合,这段代码会报错,
c.add("world");
}*/ System.out.println(str); } } }
- Mac OS平台下应用程序安装包制作工具Packages的使用介绍(补充)
- 数字按照不同格式转换成字符串
- macOS下加载动态库dylib报"code signature invalid"错误的解决办法
- Asp.net管道模型(管线模型)之一发不可收拾
- Python深入01 特殊方法与多范式
- MacOS平台下@rpath在动态链接库中的应用
- Python深入02 上下文管理器
- 剑指OFFER之字符串的排列(九度OJ1369)
- 高性能计算机传奇
- ffmpeg编解码视频导致噪声增大的一种解决方法
- 剑指OFFER之二叉搜索树与双向链表(九度OJ1503)
- 理解并自定义HttpHandler
- Mac OS X平台下QuickLook开发教程
- JSP-Servlet中文乱码
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Nginx禁止指定目录运行PHP脚本
- 机器学习数学笔记|偏度与峰度及其 python 实现
- ABP(ASP.NET Boilerplate Project)快速入门
- IdentityServer4 4.x版本 配置Scope的正确姿势
- 个人总结的部分数据验证规则
- 一句话实现php日期转中文汉字
- .Net Core微服务入门全纪录(八)——Docker Compose与容器网络
- PHP中少用但是很好用的方法
- 使用一维数据构造简单卷积神经网络
- .Net Core微服务入门全纪录(完结)——Ocelot与Swagger
- PHP使用GD库生成文件
- 反向传播算法从原理到实现
- 基于EntityFramework 6 Code First实现多租户的一种思路
- PHP使用GD库生成柱状图
- PHP生成Mysql数据字典