当前位置: 首页 > news >正文

详细讲解Java8中的forEach()用法

目录

  • 前言
  • 1. forEach()函数
  • 2. demo

前言

在实战中学习新用法,特此记录下每个笔记,感兴趣也可收藏也可补充细节

代码例子:

import java.util.Arrays;
import java.util.List;public class ForEachExample {public static void main(String[] args) {List<String> names = Arrays.asList("码农", "研究僧", "请关注");// 使用forEach打印每个名字,lambda用法names.forEach(name -> System.out.println(name));// 或者使用方法引用// names.forEach(System.out::println);}
}

输出结果如下:

在这里插入图片描述

1. forEach()函数

在Java 8中,引入了新的forEach方法,它是用于遍历集合元素的一种更便利的方式。

forEach方法被添加到Iterable接口中,因此所有实现了Iterable接口的集合类(如List、Set等)都可以使用forEach方法。
在这里插入图片描述

查看forEach()中的源代码,如下:

default void forEach(Consumer<? super T> action) {Objects.requireNonNull(action);for (T t : this) {action.accept(t);}
}

参数action要对每个元素执行的操作,如果指定操作为null,抛出异常NullPointerException

2. demo

在前言中举例了一个list列表

但forEach也可用Map以及stram来表示

当遇到Map数组的时候,其demo如下:

import java.util.HashMap;
import java.util.Map;public class test1 {public static void main(String[] args) {Map<Integer, String> studentMap = new HashMap<>();studentMap.put(1, "码农");studentMap.put(2, "研究僧");studentMap.put(3, "请关注我");// 使用forEach遍历哈希表的键值对studentMap.forEach((key, value) -> System.out.println("Key: " + key + ", Value: " + value));}
}

截图如下:

在这里插入图片描述


当遇到数据流的时候,其demo如下:

import java.util.Arrays;
import java.util.List;public class test1 {public static void main(String[] args) {List<String> words = Arrays.asList("码农", "研究僧", "请关注");// 使用流和forEach打印每个单词的长度words.stream().forEach(word -> System.out.println("Length of " + word + ": " + word.length()));}
}

截图如下:

在这里插入图片描述

相关文章:

  • html旋转相册
  • 『CVE』简析CVE-2023-48795:SSH协议前缀截断攻击(Terrapin攻击)
  • 【python】Ubuntu下安装spyder及matplotlib中文显示
  • 分布式锁常见问题及其解决方案
  • Elasticsearch基本使用
  • hive中array相关函数总结
  • 验证码服务使用指南
  • 算法基础之最长公共子序列
  • 基于Python的新能源汽车销量分析与预测系统
  • 前端学习笔记
  • 平衡二叉树的构建(递归
  • 【WPF.NET开发】数据绑定应用场景
  • 如何开发专属花店展示平台小程序?
  • uni-app 工程目录结构介绍
  • paddle 56 将图像分类模型嵌入到目标检测中并实现端到端的部署(用图像分类模型进行目标检测切片分类)
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [译]如何构建服务器端web组件,为何要构建?
  • Angular2开发踩坑系列-生产环境编译
  • Apache的基本使用
  • avalon2.2的VM生成过程
  • centos安装java运行环境jdk+tomcat
  • ECS应用管理最佳实践
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MySQL几个简单SQL的优化
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • oldjun 检测网站的经验
  • react-native 安卓真机环境搭建
  • tensorflow学习笔记3——MNIST应用篇
  • Unix命令
  • 安装python包到指定虚拟环境
  • 闭包--闭包作用之保存(一)
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 通过git安装npm私有模块
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #HarmonyOS:Web组件的使用
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (12)Linux 常见的三种进程状态
  • (2022 CVPR) Unbiased Teacher v2
  • (23)Linux的软硬连接
  • (9)目标检测_SSD的原理
  • (C#)获取字符编码的类
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (搬运以学习)flask 上下文的实现
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (三分钟)速览传统边缘检测算子
  • (一)Dubbo快速入门、介绍、使用
  • (转)iOS字体
  • (转)Linq学习笔记
  • (转)Linux整合apache和tomcat构建Web服务器