迭代器!
what(是什么)
迭代器是一种(遍历集合元素的)模式
function
是用来遍历集合内部元素
why 为什么会有迭代器这个东西
因为像有序的集合里边,可以直接通过for循环的方式get(index)遍历得到每一个元素, 而如果是无序集合,则不能通过get(index)得到集合里边的元素,迭代器就应运而生,尽管可以通过增强for循环也能对无序的集合进行遍历,但其内部亦是采用迭代器实现。
迭代器优势
迭代器提供一种对容器对象中的各个元素进行访问的方法,而又不需暴露该对象的内部细节。迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这个对象,使用迭代器就可以遍历这个对象的内部.
how (怎么使用迭代器)
需要遍历的集合调用iterator()方法,返回一个迭代器对象,hashNext()方法判断这个集合里边是否还有未遍历完的元素,直到集合没有元素可遍历循环结束则结束
迭代器遍历写法:
while写法
package come.XieZhiJun.Daily._April4_18;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class IteratorTest {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(111);
list.add(222);
list.add(333);
Iterator<Integer> iterator = list.iterator();
while(iterator.hasNext()) {
int value = iterator.next();
System.out.print(value + " ");
}
}
}
运行结果
for写法
package come.XieZhiJun.Daily._April4_18;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class IteratorTest {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(111);
list.add(222);
list.add(333);
for (Iterator<Integer> iterator = list.iterator(); iterator.hasNext(); ) {
Integer next = iterator.next();
System.out.println(next);
}
}
}