软件编程
位置:首页>> 软件编程>> java编程>> Java Collection集合iterator方法解析

Java Collection集合iterator方法解析

作者:LeeHua  发布时间:2022-11-17 06:43:29 

标签:Java,Collection,集合,iterator

这篇文章主要介绍了Java Collection集合iterator方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Iterator接口概述


/**
* java.util.Iterator接口:选代器(对集合进行遍历)
*   有两个常用的方法
*          boolean hasNext()
*             如果仍有元素可以迭代,则返回true。
*             即判断集合中还有没有下ー个元素,有就返回true,没有就返回 false
*          E next()
*             返回送代的下一个元素。
*             即取出集合中的下一个元素
*   iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator接口的实现类对象。
*       获取实现类的方式比较特殊Collection接口中有一个方法,叫iterator(),这个方法返回的就是送代器的实现类对象
*       Iterator<E> iterator()返回在该collection集合的元素上进行迭代的送代器。
*
* 迭代器的使用步骤(重点):
*       1.使用集合中的方法 iterator()获取送代器的实现类对象,使用Iterator接口接收(多态)
*       2.使用Iterator接口中的方法hasNext来判断还有没有下一个元素
*       3.使用Iterator接口中的方法next来取出集合中的下一个元素
*/

迭代器代码的实现


import java.util.ArrayList;
import java.util.Iterator;
import java.util.Collection;

public class Demo01Iterator {
 public static void main(String[] args) {
   Collection <String> collection = new ArrayList<>();

collection.add("1号");
   collection.add("2号");
   collection.add("3号");
   collection.add("4号");
   collection.add("5号");

// 第一步:使用集合中的方法 iterator() 获取送代器的实现类对象
   // 第二步:使用Iterator接口接收(多态)
   Iterator<String> stringIterator = collection.iterator();

// 第三步:使用Iterator接口中的方法hasNext来判断还有没有下一个元素
   while (stringIterator.hasNext()) {
     // 第四步:使用Iterator接口中的方法next来取出集合中的下一个元素
     System.out.println(
         stringIterator.next()
     );
   }

}
}

输出结果:
1号
2号
3号
4号
5号

迭代器的实现原理


new一个集合出来
collection = new ArrayList<>()

假设集合中添加有元素
collection = [一号元素, 二号元素, 三号元素, 四号元素, 五号元素]

集合中的元素对应的索引
Index = [0, 1, 2, 3, 4]

调用iterator方法
collection.iterator()
作用:获取迭代器的实现类对象井且会把指针(索引)指向集合的-1素引

代码说明:
while (stringIterator.hasNext()) {
 stringIterator.next()
}
通过Iterator接口的hasNext()方法,判断集合是否还有没有下一个元素
如果有下一个元素,那么就调用Iterator接口的next()方法,取出下一个元素,并且会把指针向后移一位。

就这样,从索引的 -1 位置的下一位索引,开始获取元素,直到获取完全。

来源:https://www.cnblogs.com/liyihua/p/12183013.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com