Collection集合的遍历

ndmtzwdx / 2024-10-19 / 原文

一、第一种方法,将集合转换成数组,进行循环遍历

public class CollectionDemo3 {
    public static void main(String[] args) {
        Collection c1=new ArrayList();
        c1.add("java");
        c1.add("python");
        c1.add("list");
        c1.add("hive");
        c1.add("world");
        System.out.println(c1);
        Object[] objects=c1.toArray();
        for(int i=0;i< objects.length;i++){
            Object obj=objects[i];
            String s1=(String)obj;
            System.out.println(obj+"-"+s1.length());
        }
        //这里可以使用增强for循环来写
//        for (Object object : objects) {
//            String s1=(String)object;
//            System.out.println(object+"-"+s1.length());
//        }
    }
}

二、第二种方法:使用迭代器进行遍历

/*
    Iterator iterator() 迭代器,集合的专用遍历方式

 */
public class CollectionDemo4 {
    public static void main(String[] args) {
        Collection c1 = new ArrayList();
        c1.add("hello");
        c1.add("world");
        c1.add("java");
        c1.add("hadoop");
        c1.add("world");



//        Collection类型的集合本身是不可以直接遍历的
//        需要生成对应的迭代器,迭代器中存储了集合中的元素
//        将来遍历迭代器就可以获取集合中的元素了
//        生成迭代器
        Iterator iterator = c1.iterator(); // new Itr()
//        System.out.println(iterator.next());
//        System.out.println(iterator.next());
//        System.out.println(iterator.next());
//        System.out.println(iterator.next());
//        System.out.println(iterator.next());
//        System.out.println(iterator.next()); // NoSuchElementException
        //每一个迭代器,都有一个独立指针,每调用一次next()方法,就会向后移动一次指针取数据
        //如何判断下一个位置上是否有元素呢?
        while (iterator.hasNext()){  //hasNext()用来判断下一个位置上是否还有元素,要是有就返回ture,没有就返回false
            Object obj = iterator.next();
            String s = (String)obj;
            System.out.println(s+"-"+s.length());
        }

    }
}