s-day02-迭代器遍历的流程与实现
This commit is contained in:
@@ -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("程序结束");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user