进阶day02-迭代器遍历集合的流程与实现
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
//--------------------------之前已经学过的集合的遍历----------------------
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
64
javaSE-day02/src/com/inmind/iterator02/IteratorDemo02.java
Normal file
64
javaSE-day02/src/com/inmind/iterator02/IteratorDemo02.java
Normal 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("程序结束");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user