s-day02-迭代器遍历的流程与实现

This commit is contained in:
2026-07-30 16:22:37 +08:00
parent 907e46e46d
commit c9a6769f10
@@ -0,0 +1,57 @@
package com.inmind.iterator02;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
1.为什么要学习迭代器??
因为单列集合有一部分【set集合】是没有索引,之前的普通for循环是通过索引获取每个元素,不满足所有单列集合的遍历操作,所以我们要学习一个更通用的遍历方式,迭代器
2.如何获取迭代器
Iterator<E> iterator() 返回此集合中元素的迭代器。
3.如何使用迭代器
boolean hasNext() 如果迭代具有更多元素,则返回 true 。
E next() 返回迭代中的下一个元素。
default void remove() 从底层集合中删除此迭代器返回的最后一个元素(可选操作)。
*/
public class Demo03 {
public static void main(String[] args) {
//这是List集合的遍历,不是通用的遍历方式!!!!!
/*ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
list.remove(i);
i--;
}*/
//针对所有单列集合的通用遍历方式:迭代器
//单列集合的多态
Collection<String> cols = new ArrayList<>();
cols.add("张三1");
cols.add("王宝强");
cols.add("张三2");
cols.add("张三3");
//获取迭代器
Iterator<String> iterator = cols.iterator();
//使用迭代器获取数据,如果有下一个元素,则就获取,如果没有则结束(不停地获取,直到没有)
/*if (iterator.hasNext()) {
System.out.println(iterator.next());
}
System.out.println(iterator.next());
System.out.println(iterator.next());
System.out.println(iterator.next());*/
while (iterator.hasNext()) {
String element = iterator.next();
if ("王宝强".equals(element)) {
iterator.remove();//直接将容器中对应的数据删除
}
System.out.println(element);
}
System.out.println(cols);//展示删除后的集合内容
System.out.println("程序结束");
}
}