diff --git a/s-day02/src/com/inmind/iterator02/Demo03.java b/s-day02/src/com/inmind/iterator02/Demo03.java new file mode 100644 index 0000000..de9b870 --- /dev/null +++ b/s-day02/src/com/inmind/iterator02/Demo03.java @@ -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 iterator() 返回此集合中元素的迭代器。 + +3.如何使用迭代器 +boolean hasNext() 如果迭代具有更多元素,则返回 true 。 +E next() 返回迭代中的下一个元素。 +default void remove() 从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 + + */ +public class Demo03 { + public static void main(String[] args) { + //这是List集合的遍历,不是通用的遍历方式!!!!! + /*ArrayList list = new ArrayList<>(); + for (int i = 0; i < list.size(); i++) { + System.out.println(list.get(i)); + list.remove(i); + i--; + }*/ + + //针对所有单列集合的通用遍历方式:迭代器 + //单列集合的多态 + Collection cols = new ArrayList<>(); + cols.add("张三1"); + cols.add("王宝强"); + cols.add("张三2"); + cols.add("张三3"); + //获取迭代器 + Iterator 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("程序结束"); + } +}