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

前言

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

代码例子:

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()));
	}
}

截图如下:

在这里插入图片描述


在实战中可以通过创建一个列表,让列表只添加额外的对象值即可!

代码如下:

List<Long> ids = new ArrayList<Long>();

// sortMaintenances 为对象值!
sortMaintenances.forEach(e -> ids.add(e.getMaintenanceId()));
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农研究僧

你的鼓励将是我创作的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值