增强for、iterator迭代器
因为初学java,对部分语法还模棱两可,
在做练习的时候,用增强for遍历字符串编译报错
所以来复习下增强for原理和适用范围
一.增强for概念
增强for(也成为for each循环)是JDK 1.5以后出来的一个高级for循环,
专门用来遍历数组和集合的,内部原理是iterator迭代器,所以遍历时,不能对集合中元素增删
遍历数组代码演示:
int[] arr = {3,5,6,87};
//使用增强for遍历数组
for(int a : arr){//a代表数组中的每个元素
System.out.println(a);
代码放在test类中运行遍历出数组内元素
遍历集合代码演示:
Collection<String> coll = new ArrayList<String>();
coll.add("小河神");
coll.add("老河神");
coll.add("神婆");
for(String s :coll){
System.out.println(s);//变量S,表示被遍历到的集合内部的元素
}
代码放在test类中运行遍历出集合内各个元素
二.Iterator接口
1.增强for循环内部使用的是iterator,所以来了解下Iterator
Iterator主要用于迭代访问(即遍历) Collection中的元素,因此Iterator对象也被称为迭代器
2.要向遍历集合,先要获取迭代器对象,获取迭代器方法:
public Iterator iterator(): 获取集合对应的迭代器,用来遍历集合
Collection<String> coll = new ArrayList<String>();
// 添加元素到集合
coll.add("串串星人");
coll.add("吐槽星人");
coll.add("汪星人");
//使用迭代器 遍历 每个集合对象都有自己的迭代器
Iterator<String> it = coll.iterator();
while(it.hasNext()){ //判断是否有迭代元素
String s = it.next(); //获取迭代出的元素
Syetem.out.println(s);
}
迭代器的实现原理:
1.通过集合 coll 调用iterator()方法获得迭代器对象;
2.使用hashNext()方法盘算集合中是否存在下一个元素;
3.如果存在,调用next()方法将元素取出,否则说明已经到达了集合末尾,停止遍历元素
增强for、iterator迭代器的更多相关文章
- Java集合、Iterator迭代器和增强for循环整理
集合 集合,集合是java中提供的一种容器,可以用来存储多个数据. 数组的长度是固定的.集合的长度是可变的.集合中存储的元素必须是引用类型数据 1.1 ArrayList集合存储元素 pac ...
- JavaSE Collections类 , Iterator迭代器 , 增强for循环
Collections 它是集合的工具类,为集合体系扩展了一些其他的方法.类中都是静态的方法,可以使用类名直接调用. 可变参数 在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类 ...
- day06(Collection,List,ArrayList,LinkedList,iterator迭代器,增强for)
Collection 接口 方法实现 boolean add(Object o);//添加 boolean remove(Object o);//移除 修改方法 让实现类自己去实现修 ...
- 18_集合框架_第18天_集合、Iterator迭代器、增强for循环 、泛型_讲义
今日内容介绍 1.集合 2.Iterator迭代器 3.增强for循环 4.泛型 01集合使用的回顾 *A:集合使用的回顾 *a.ArrayList集合存储5个int类型元素 public stati ...
- JAVA基础之集合、Iterator迭代器、泛型及增强for循环
个人理解: 对于集合,首先要明确的是最顶层的接口是Collection接口类,其包含一些基本的方法以便子类调用,不过在定义的时候最好定义好数据类型,以免遍历时还得必须进行向上转型:特别注意的是其没有关 ...
- java基础(18):集合、Iterator迭代器、增强for循环、泛型
1. 集合 1.1 集合介绍 集合,集合是java中提供的一种容器,可以用来存储多个数据. 在前面的学习中,我们知道数据多了,可以使用数组存放或者使用ArrayList集合进行存放数据.那么,集合和数 ...
- Java学习笔记28(集合框架二:Iterator迭代器)
Iterator接口,翻译成中文是迭代器 迭代器的概念通俗解释: java中有很多的集合,内部有各种存储方法,取出的方式也各不相同,是否可以有一种通用的方式来获取呢? 这种方式类似for循环遍历, 通 ...
- 8.2.2 使用Java8增强的Iterator遍历集合元素
8.2.2 使用Java 8增强的Iterator遍历集合元素 Iterator接口方法 程序示例 Iterator仅用于遍历集合 Iterator必须依附于Collection对象 修改迭代变量的值 ...
- Collection接口【集合】和Iterator迭代器类
1.1集合的概述 前面基础学习并使用过集合ArrayList<E>,那么集合究竟是什么呢? 集合:集合是Java中提供的一种容器,可以用来存储多个数据. 那么意思就是说集合是容器,但是容器 ...
随机推荐
- MAC终端神器iterm2——告别黑白
https://www.cnblogs.com/soyxiaobi/p/9695931.html
- ORM以及Django使用ORM创建表
day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n k1:v1\r\n ...\r\n \r\n ...
- MyBatis进阶(四)
mapper.xml文件的编写 mapper.xml映射文件实现数据库和实体类之间的映射关系,定义操作数据库的sql语句. 主体部分 文件头部 <?xml version="1.0&q ...
- React.js小书总结
(迁移自旧博客2017 08 27) 第一阶段 react的组件相当于MVC里面的View. react.js 将帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合.嵌套,就成 ...
- STM32的PA15、PB3、 PB4管脚作普通管脚的解决办法
最近做了一个板子,使用的是SWD方式进行下载程序,仅仅使用到SWDIO(PA13) 和SWCLK(PA14)两个管脚.我将PA15(JTDI)和PB3(JTDO)管脚用于他用(用于点LED使用), ...
- lambda 委托 匿名方法
委托: delegate是C#中的一种类型,它实际上是一个能够持有对某个方法的引用的类.与其它的类不同,delegate类能够拥有一个签名(signature),并且它只能持有与它的签名相匹配的方法的 ...
- Notepad++对比文件
Notepad++怎么对比文件,安装文件对比插件Compare pluginhttps://blog.csdn.net/qq_31772441/article/details/80306265 可以只 ...
- vue history模式
注意: 1.前端:config.js路径问题 2.后台:配置nginx
- Spring MVC 返回Json数据环境记录
Spring 版本 Spring4.3.18 Json包 jackson-annotations-2.9.8.jar jackson-core-2.9.8.jar jackson ...
- linux指令(2)
1)获取历史操作命令: "!<history指令编号>”即可运行相应命令 [root@server1 ~]# history.............. 1011 uname - ...