Java语言学习总结 扩展篇 Iterator迭代器

Iterator迭代器

在程序开发中,经常需要遍历集合中的所有元素。针对这种需求, JDK专门提供了一个接口
java.util.Iterator。Iterator 接口也是Java集合中的一员,但它与collection、Map 接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历) Collection 中的元素因此Iterator对象也被称为迭代器

想要遍历Collection集合,那么就要获取该集合迭代器完成迭代操作,下面介绍一下获取迭代器的方法 :
public Iterator iterator() :获取集合对应的迭代器,用来遍历集合中的元素的。
下面介绍一下迭代的概念:
迭代:即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。-直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代

迭代器是一种通用的取出集合中元素的方法
API中的方法如下:
方法摘要使用步骤

  1. 使用集合中的方法iterator()获取迭代器的实现类对象
  2. 使用Iterato接口中的方法hasNext判断还有没有下一个元素
  3. 使用Iterator接口中的方法next取出集合中的下一个元素

代码示例:

import java.util.Iterator;
import java.util.Collection;
import java.util.ArrayList;
public class IteratorClass {

	public static void main(String[] args) {
		/**
		 * Iterator迭代器,是一个接口,我们无法直接使用,需要使用Iterator
		 * 接口的实现类对象,获取实现类的方式比较特殊
		 * Collection中有一个方法,iterator(),这个方法的返回值
		 * 就是迭代器的实现类对象
		 * Iterator<E> iterator() 返回值  
		 * 
		 * 使用步骤:
		 * 1. 使用集合中的方法iterator()获取迭代器的实现类对象
		 * 2.使用Iterato接口中的方法hasNext判断还有没有下一个元素
		 * 3.使用Iterator接口中的方法next取出集合中的下一个元素
		 */
		
		//创建集合对象
		Collection<String> coll = new ArrayList<>();
		//add元素
		coll.add("Leo");
		coll.add("Mary");
		coll.add("Alice");
		coll.add("Lue");
		
		Iterator<String> it = coll.iterator();
		//用 hasNext方法判断是否还有下一个元素
		boolean b = it.hasNext();
		System.out.println(b); //true;
		
		//用next方法去除集合中的下一个元素
		String s = it.next();
		System.out.println(s);
		
		//当不知道有多少个元素时,可以用while循环遍历集合中的元素
		//循环结束条件为hasNext返回值为false
		while(it.hasNext()) {
			String e = it.next();
			System.out.println(e);
		}
		System.out.println("=================");
		for(Iterator<String> it2 =coll.iterator();it2.hasNext();){
			String s2 = it.next();
			System.out.println(s2);
		}
	}
}

迭代器工作原理:
用iterator()方法返回的迭代器实际上是一个指向-1的指针(索引),用hasNext判断是否有下一个元素时,讲指针指向0号元素,若有则返回true,并用next()把元素取出来,如下往下判断。

————————————————————————

发布了72 篇原创文章 · 获赞 3 · 访问量 6193

猜你喜欢

转载自blog.csdn.net/Ace_bb/article/details/104124944
今日推荐