集合→Collection接口(遍历)

一、Object [] toArray();
把集合转成数组,可以实现集合的遍历

package Collection;
import java.util.ArrayList;
import java.util.Collection;
/*
 * Object[] toArray()
 * 把集合转成数组,可以实现集合的遍历
 */
public class ToArrayDemo {

    public static void main(String[] args) {
        Collection c = new ArrayList();
        // 添加元素
        c.add("hello");
        c.add("word");
        c.add("java");
        // 把集合转成数组
        Object[] b = c.toArray();
        System.out.println(b);//[Ljava.lang.Object;@4e25154f
        for (int i = 0; i < b.length; i++) {
        System.out.println(b[i]);
        }
    }
}

二、Iterator iterator();
迭代器,集合的专用遍历方式
使用do…while循环没有写出来,那位兄弟,写出来了,请给我留言并交流。谢谢。

package Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/*
 * Iterator iterator()
 * 迭代器,集合的专用遍历方式
 * Iterator:是接口,作用是迭代集合中的元素
 *    对 collection 进行迭代的迭代器
 *    依赖于集合而存在
 * 成员方法:
 *  boolean hasNext():判断集合是否含有元素
 *  E next():进行获取元素,并将下标指向下一个元素
 */
public class IteratorDemo {
    public static void main(String[] args) {
        // 创建一个集合
        Collection c = new ArrayList();
        // 添加元素
        c.add("hello");
        c.add("word");
        c.add("java");
        // 打印集合
        System.out.println(c);// [hello, word, java]这是给你看集合中存储了那些元素,但是并不是获取
        // 使用获取迭代器
        //Iterator it = c.iterator();
        // boolean hasNext():判断是否还有元素
        /*
         * it.hasNext(); 
         * System.out.println(it.next());//hello
         * System.out.println(it.next());//word
         * System.out.println(it.next());//java
         */
        // System.out.println(it.next());//NoSuchElementException
      //最终级版本1whlie
    /*  while(it.hasNext()){
            String st = (String)it.next();
            System.out.println(st);
        }*/
    /*  //最终级版本2do...whlie 最终没有打印出来
        do{
            it.hasNext();
        String st = (String)it.next();
        System.out.println(it.next());
        }while(true);//NoSuchElementException:没有next
    }*/
        //最终级版本3for
        for(Iterator it = c.iterator();it.hasNext();){
            String st = (String)it.next();
            System.out.println(st);
        }
    }
}

三、创建学生对象并遍历

package Collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
 * 需求:
 * 存储自定义对象并遍历
 * Student(name,age)
 */
public class CollectionDemo2 {
    public static void main(String[] args) {
          //创建集合对象
        Collection c = new ArrayList();
          //创建学生对象
        Student st = new Student("唐僧",12);
        Student st2 = new Student("孙悟空",10);
        Student st3 = new Student("猪八戒",9);
        Student st4 = new Student("沙师弟",8);
         //添加学生对象至集合
        c.add(st);
        c.add(st2);
        c.add(st3);
        c.add(st4);
         //遍历集合
        Iterator it = c.iterator();
        while(it.hasNext()){
            Student s = (Student) it.next();
            System.out.println(s.getName() +"....." + s.getAge());
        }
        //使用for循环
        Object[] o = c.toArray();
        for(int i = 0; i < o.length;i++){
            System.out.println( ((Student) o[i]).getName() +"....." + ((Student) o[i]).getAge());
        }

    }
}

四、思考一个问题:
Iterator接口 为什么不定义成一个类,而是一个接口?
这里写图片描述

猜你喜欢

转载自blog.csdn.net/My_CODEart/article/details/80411274