Collection集合的遍历,集合转数组,迭代器 day12

qiwei-bigdata / 2024-08-10 / 原文

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);
        }



    }
}