【JDK 8-集合框架进阶】6.3 foreach

news/2024/7/7 19:46:10

一、foreach

1. JDK8之前集合遍历的方式

2. Jdk8 里面的新增接口

二、注意点

三、实战

> 执行结果


一、foreach

1. JDK8之前集合遍历的方式

  • for 循环

  • 迭代器 Iterator

2. Jdk8 里面的新增接口

  • 使用场景:用于遍历,如 打印信息等
    default void forEach(Consumer<? super T> action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }



二、注意点

  • 不能修改forEach()外部变量值,会报错

  • return 不能停止 foreach

  • break,continue 会报错

三、实战

    public static void main(String[] args) {
        List<User> list = Arrays.asList(new User(1, "陆小凤", "123456"),
                new User(2, "西门吹雪", "123456"),
                new User(3, "叶孤城", "123456"));
        System.out.println("【方式一】obj->");
        list.forEach(obj-> System.out.println(obj));

        System.out.println("【方式二】System.out::println");
        list.forEach(System.out::println);

        System.out.println("【注意一】return 不能停止foreach");
        list.forEach(obj->{
            System.out.println(obj.getName());
            if (obj.getName().equals("西门吹雪")){
                System.out.println("return 不能停止foreach");
                return;
            }

        });
        System.out.println("【注意二】break,continue 会报错");
}

> 执行结果


http://lihuaxi.xjx100.cn/news/1557867.html

相关文章

VUE3中defineExpose的使用方法

使用 <script setup> 的组件是默认关闭的——即通过模板引用或者 $parent 链获取到的组件的公开实例&#xff0c;不会暴露任何在 <script setup> 中声明的绑定。 可以通过 defineExpose 编译器宏来显式指定在 <script setup> 组件中要暴露出去的属性 官网传…

Python 数独求解器

文章目录 使用回溯算法在Python中解决数独总结 Sudoku&#xff08;数独&#xff09;是一种基于逻辑的数字填充谜题游戏&#xff0c;最受喜爱的是那些热爱逻辑和推理的人。解决数独谜题有助于提高集中注意力和逻辑思维能力。 本文介绍了如何使用Python解决数独谜题。 使用回溯算…

C语言学习:14、递归函数

所谓递归&#xff0c;就是函数自己调用自己 递归就是将大问题分解成小问题&#xff0c;分而治之&#xff1b; 递归分解的是有限的问题&#xff0c;无限的问题就不能递归了,会导致程序崩溃。 //数列求和 //Sn a1 a1 ... an //Sn Sn-1 an, S1 a1 程序示例1&#xff1a;求…

力扣刷题:寻找两个正序数组的中位数、最长回文子串

今日刷题又开始了 一、寻找两个正序数组的中位数 题目链接&#xff1a;https://leetcode.cn/problems/median-of-two-sorted-arrays/ 给定两个大小分别为 m 和 n 的正序&#xff08;从小到大&#xff09;数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法…

Postman应用——Headers请求头设置

文章目录 Header设置Header删除或禁用Header批量编辑Header预设添加 一般在接口需要校验签名时&#xff0c;Headers请求头用来携带签名和生成签名需要的参数&#xff0c;在Postman也可以设置请求头在接口请求时携带参数。 Header设置 说明&#xff1a; Key&#xff1a;Header…

按月统计数据——mysql实现

业务场景 对某类业务数据&#xff0c;按月统计数量&#xff0c;返回当年各个月份的任务数量。 思路 按照创建时间&#xff0c;格式化为yyyy-mm的month字段&#xff0c;然后根据month进行分组查询&#xff0c;统计count作为数量 SELECT DATE_FORMAT(create_time, %Y-%m) AS mon…

面向面试知识--Lottery项目

面向面试知识–Lottery项目 1.设计模式 为什么需要设计模式&#xff1f; &#xff08;设计模式是什么&#xff1f;优点有哪些&#xff1f;&#xff09; 设计模式是一套经过验证的有效的软件开发指导思想/解决方案&#xff1b;提高代码的可重用性和可维护性&#xff1b;提高团…

【使用malloc函数动态模拟开辟二维数组的三种方法】

方法1.用指针数&#x1f9d0; 首先&#xff1a;看一下原理图(以开辟整型二维数组三行四列为例&#xff0c;以下都是):&#x1f4bb; 其次&#xff1a; 先看一下用malloc申请一维数组:&#x1f92f; int *p(int *)malloc(10*sizeof(int));//开辟10个内存空间接着&#xff1a;申…