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

发布时间:2023年12月26日

前言

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

代码例子:

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

截图如下:

在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_47872288/article/details/135186944
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。