package com.shujia.day12;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
Collection集合如何遍历?
学习集合的4个步骤:
1、如何创建集合对象?
2、如何创建元素对象?
3、如何将元素对象添加到集合中?
4、如何遍历集合?
调用Collection接口中的iterator()方法获取集合对应的迭代器对象
Iterator类中有方法可以给我们使用获取元素对象
Iterator接口中提供了一个方法hasNext(),帮助我们判断下一个位置上是否有元素
next方法有返回值是Object类型的,该方法就是获取元素的方法
*/
public class CollectionDemo3 {
public static void main(String[] args) {
//创建一个集合对象
Collection c1 = new ArrayList();
//添加元素
c1.add("hello");
c1.add("java");
c1.add("world");
c1.add("hello");
c1.add("hadoop");
//遍历集合
//方式1:Object[] toArray() 把集合转成数组,可以实现集合的遍历
// Object[] arr1 = c1.toArray(); //将集合转为Object类型的数组
// for (int i = 0; i < arr1.length; i++) {
// Object o = arr1[i]; // Object o = "hello" 相当于多态
// String s = (String)o;//向下转型目的是调用String类型的length()方法
// System.out.println(s + ", " + s.length());
// }
//方式2:Iterator iterator() 迭代器遍历,Collection集合的专用遍历方式
//调用Collection接口中的iterator()方法获取集合对应的迭代器Iterator的对象iterator
//迭代器对象中存储了集合中每一个元素,Iterator类中有方法可以给我们使用获取元素对象
Iterator iterator = c1.iterator(); //Iterator iterator = new Itr()
//通过观察源码发现,Itr类中只有next方法有返回值是Object类型的,该方法就是获取元素的方法
// Object o = iterator.next(); //Object o = "hello" 迭代器调用next方法获取元素
// System.out.println(o);
// Object o1 = iterator.next();
// System.out.println(o1);
// Object o2 = iterator.next();
// System.out.println(o2);
// Object o3 = iterator.next();
// System.out.println(o3);
// Object o4 = iterator.next();
// System.out.println(o4);
// Object o5 = iterator.next();
// System.out.println(o5);
//我们应该在next方法调用之前,先看一看迭代器中下一个位置上是否有元素,若有元素,才进行调用
//Iterator接口中提供了一个方法hasNext(),帮助我们判断下一个位置上是否有元素
while (iterator.hasNext()){
Object o = iterator.next();
System.out.println(o);
}
System.out.println("=====================]");
while (iterator.hasNext()){
Object o = iterator.next();
System.out.println(o);
}
}
}
