19-Jav-集合-三种遍历方式


一、迭代器

  • 迭代器在遍历集合的时候是不依赖索引的
方法使用
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * @Author: 大海
 * @Date: 2025-09-12
 */

public class study_20_遍历方式 {
    public static void main(String[] args) {
        // 1.迭代器遍历
        Collection<String> coll = new ArrayList<>();
        coll.add("hello");
        coll.add("world");
        coll.add("study");
        coll.add("java");

        // 获取迭代器对象
        Iterator<String> it = coll.iterator();
        // 遍历集合
        while (it.hasNext()) {
            // 调用迭代器的next()方法获取下一个元素
            // 迭代器遍历时,不能使用集合的remove()方法和增加元素的方法
            String str = it.next();
            System.out.println(str);
        }

        // 上面循环后调用next方法,会抛出异常NoSuchElementException,因为迭代器已经遍历完了,没有下一个元素了。
        System.out.println(it.next());

    }
}


四个细节
  1. 如果当前位置没有元素,还要强行获取,会报NoSuchElementException
  2. 迭代器遍历完毕,指针不会复位
  3. 循环中只能用一次next方法
  4. 迭代器遍历时,不能用集合的方法进行增加或者删除

二、增强for遍历

说明
  1. 增强for的底层就是迭代器,为了简化迭代器的代码书写的。它
  2. JDK5之后出现的,其内部原理就是一个lterator迭代器
  3. 所有的单列集合和数组才能用增强for进行遍历。
格式
for(元素的数据类型变量名:数组或者集合){

}
示例
import java.util.ArrayList;
import java.util.Collection;

/**
 * @Author: 大海
 * @Date: 2025-09-19
 */

public class study_21_增强for循环遍历 {
    public static void main(String[] args) {
        // 创建集合
        Collection<String> coll = new ArrayList<>();
        coll.add("大海");
        coll.add("男");
        coll.add("30");
        coll.add("沈阳");
        coll.add("高级测试开发工程师");

        // 增强for循环遍历集合
        for (String s : coll) {
            System.out.println(s);
        }
    }
}

三、Lambda表达式遍历

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

/**
 * @Author: 大海
 * @Date: 2025-09-19
 */

public class study_22_Lambda表达式遍历 {
    public static void main(String[] args) {
        // 创建一个集合并添加元素
        Collection<String> coll = new ArrayList<>();
        coll.add("大海");
        coll.add("男");
        coll.add("30");
        coll.add("沈阳");
        coll.add("高级测试开发工程师");
        
        // 使用forEach方法遍历集合
        coll.forEach(s -> System.out.println(s));

    }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习de测试小白

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值