概述
迭代器
概述
在程序开发过程中,经常需要遍历集合当中的所有元素,针对这种情况,JDK 官方有提供了一个接口
Java.util.Iterator
Iterator 接口它也是集合当中的一员,但是它与Map,Collection 接口不同
Collection 接口和 Map接口它主要是用来存储元素的,
而 Iterator 主要是用来迭代访问 Collection 与 Map 接口当中的元素,
因此我们也经常把 Iterator 对象称为迭代器.
想要遍历 Collection 集合当中的元素
首先需要获取该集合的迭代器,通过迭代器完成迭代操作
获取迭代器的方法
public Iterator iterator()
获取集合对应的迭代器,用来遍历集合当中的元素
迭代的概念
迭代: collection 集合元素的通用获取方式.
具体实现 : 在每次取元素之前首先判断集合当中有没有元素,
如果有,就把这个元素取出来,继续在判断
如果还有就再一次取出来,一直把集合当中的所有元素全部取出来
我们把这种取出方式在专业术语中称为迭代
Iterator接口的常用API 方法
public E next()
迭代获取迭代的下一个元素
public Boolean hasNext()
有容器中还有元素时,返回 true 没有元素返回 false
示例
Iterator 是一个接口,无法直接使用
需要借助 Iterator 它的实现类对象,获取实现类对象的方式比较特殊
Collection 接口当中有一个 api 方法 Iterator()
这个方法就是以迭代器实现类的对象
Iterator<E> iterator()
返回值就是 此 Collecton 元素上要进行迭代器的迭代对象
迭代器使用步骤
1.通过集合的Iterator() 方法获取此集合元素的迭代器实现类对象,
使用Iterator接口进行接收(多态)
2.使用Iterator接口中定义的方法hasNext() 判断集合当中还有没有下一个元素
3.使用Iterator接口当中的方法next() 取出集合当中的下一个元素
在调用 Iterator 接口当中的next 方法之前,迭代器的索引位于第一个元素之前,不指向任何元素
当第一次调用迭代器的next 方法后,迭代器的索引会向后移动一位,指向第一个元素并将该元素返回
当再次调用 next() 方法时,迭代器的索引会指向第二个元素并将该元素返回,以此类推
直到 haSNext() 方法 返回 false 时,表示迭代器达到了集合的末尾,终止对元素的遍历
如果到达末尾后再继续取,会报异常 NoSuchElement
Iterator<E> 接口也是有泛型的,迭代器的泛型是跟着集合走的,集合当中定义的什么类型,迭代器就是什么类型
增强 for 循环
概述
在JDK 1.5 之后出现了新的循环结构,for each 循环
一般也称为增强 for 循环
专门用来遍历数组和集合
它的内部原理其实是有个迭代器 Iterator
在迭代过程中不能对集合当中的元素进行增删操作
格式
for(元素的数据类型 变量名 : Collection 集合或者数组){
// 操作代码
}
主要用于遍历 Collection 集合或者数组.
在遍历过程中,一定不要进行增删操作
示例
int[] arr = {1,3,5,7,9,12}
// 使用 for each 循环遍历 arr 数组
for(int i : arr){ // i 代表的是数组当中的每个元素
sout(i);
}
// Collection
Collection<String> coll = new ArrayList<>();
coll.add("A");
coll.add("B");
coll.add("C");
for(String s : coll){
sout(s);
}
备注
目标只能是 Collection 集合或者是数组,增强 for 循环 仅仅是作为遍历操作出现.简化迭代器的操作.
最后
以上就是俊逸香烟为你收集整理的Java 迭代器和增强 for 循环的全部内容,希望文章能够帮你解决Java 迭代器和增强 for 循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复