进阶day02-迭代器遍历集合的流程与实现

This commit is contained in:
2026-01-31 09:53:42 +08:00
parent b1b3212413
commit 9fdfe005be
2 changed files with 66 additions and 0 deletions

View File

@@ -54,5 +54,7 @@ public class CollectionDemo01 {
System.out.println(strList); System.out.println(strList);
System.out.println(strList.isEmpty());//true System.out.println(strList.isEmpty());//true
//--------------------------之前已经学过的集合的遍历----------------------
} }
} }

View File

@@ -0,0 +1,64 @@
package com.inmind.iterator02;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
4.迭代器遍历的流程与实现
1.为什么要学习迭代器??
因为单列集合有一部分没有索引,之前的普通for循环不满足遍历操作,所以我们要学习一个通用性的遍历方式,迭代器
2.如何获取迭代器??
Iterator<E> iterator() 返回此集合中元素的迭代器。
3.迭代器如何使用?
boolean hasNext() 如果迭代具有更多元素,则返回 true 。
E next() 返回迭代中的下一个元素。
使用步骤:
1.判断是否有下一条数据
2.如果有就获取下一条数据,如果没有就停止
*/
public class IteratorDemo02 {
public static void main(String[] args) {
//定义出一个保存字符串的单列集合
Collection<String> lists = new ArrayList<>();//父接口引用指向子类对象,多态
lists.add("刘备");
lists.add("关羽");
lists.add("张飞");
lists.add("张飞");
lists.add("张飞");
lists.add("张飞");
//由于当前单列集合没有索引api,只能通过通用性更强的迭代器来遍历
Iterator<String> iterator = lists.iterator();
/*
使用步骤:
1.判断是否有下一条数据
2.如果有就获取下一条数据,如果没有就停止
*/
/*System.out.println(iterator.hasNext());//true
System.out.println(iterator.next());//刘备
System.out.println(iterator.hasNext());//true
System.out.println(iterator.next());//关羽
System.out.println(iterator.hasNext());//true
System.out.println(iterator.next());//张飞
System.out.println(iterator.hasNext());//false
System.out.println(iterator.next());//注意如果迭代器返回没有下一个元素了还继续获取则会报异常java.util.NoSuchElementException
*/
//使用while循环来优化迭代器遍历
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println(next);
}
System.out.println("程序结束");
}
}