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