学习Java第34天,集合中迭代器的使用与增强for循环

文章详细展示了如何在Java中使用迭代器遍历ArrayList,以及foreach循环的使用,包括其在数组和集合中的应用。还包含实际的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 迭代器(Iterator)的作用?
用来遍历集合元素的。

2. 如何获取迭代器(Iterator)对象?
Iterator iterator = coll.iterator();

3. 如何实现遍历(代码实现)
while(iterator.hasNext()){
    System.out.println(iterator.next()); //next():①指针下移 ② 将下移以后集合位置上的元素返回
}


4. 增强for循环(foreach循环)的使用(jdk5.0新特性)
4.1 作用
用来遍历数组、集合。

4.2 格式:
for(要遍历的集合或数组元素的类型 临时变量 : 要遍历的集合或数组变量){
    操作临时变量的输出
}


4.3 说明:
> 针对于集合来讲,增强for循环的底层仍然使用的是迭代器。
> 增强for循环的执行过程中,是将集合或数组中的元素依次赋值给临时变量,注意,循环体中对临时变量的修改,可能
  不会导致原有集合或数组中元素的修改。
public class ForTest {
    @Test
    public void test(){
        Collection coll = new ArrayList();

        coll.add("AA");
        coll.add("BB");
        Person p1 = new Person("Tom",12);
        coll.add(p1);
        coll.add(128);//自动装箱
        coll.add(new String("尚硅谷"));


        for(Object obj : coll){
            System.out.println(obj);
        }

    }

    @Test
    public void test2(){
        int[] arr = new int[]{1,2,3,4,5};

        for(int i : arr){
            System.out.println(i);
        }
    }

    @Test
    public void test3(){
        String[] arr = new String[]{"GG","JJ","DD","MM","SS"};

        for(String s : arr){
            System.out.println(s);
        }
    }
}

public class IteratorTest {
    @Test
    public void test1(){
        Collection coll = new ArrayList();

        coll.add("AA");
        coll.add("AA");
        Person p1 = new Person("Tom",12);
        coll.add(p1);
        coll.add(128);//自动装箱
        coll.add(new String("尚硅谷"));

        //获取迭代器对象
        Iterator iterator = coll.iterator();
//        System.out.println(iterator.getClass());

        //方式1:
//        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异常

        //方式2:
//        for(int i = 0;i < coll.size();i++){
//            System.out.println(iterator.next());
//        }

        //方式3:推荐
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }

    @Test
    public void test2(){
        Collection coll = new ArrayList();

        coll.add("AA");
        coll.add("BB");
        Person p1 = new Person("Tom",12);
        coll.add(p1);
        coll.add(128);//自动装箱
        coll.add(new String("尚硅谷"));

        //方式1:错误的遍历
//        Iterator iterator = coll.iterator();
//
//        while((iterator.next()) != null){
//            System.out.println(iterator.next());
//        }

        //方式2:错误的遍历
        //每次调用coll.iterator(),都会返回一个新的迭代器对象。
        while(coll.iterator().hasNext()){
            System.out.println(coll.iterator().next());
        }
    }
}

ps:来源尚硅谷

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值