jdk8中forEach参数
时间: 2023-07-03 20:06:43 浏览: 106
在JDK8中,forEach方法有两个重载形式:
1. forEach(Consumer<? super T> action)
该方法接受一个Consumer类型的参数action,它代表了一个需要执行的操作。对于集合中的每一个元素,都将调用action.accept方法,将元素作为参数传递给该方法。
例如,以下代码将打印list中的每个元素:
```
List<String> list = Arrays.asList("apple", "banana", "orange");
list.forEach(item -> System.out.println(item));
```
2. void forEach(BiConsumer<? super K,? super V> action)
该方法接受一个BiConsumer类型的参数action,它代表了一个需要执行的操作。对于Map中的每一个键值对,都将调用action.accept方法,并将键和值作为参数传递给该方法。
例如,以下代码将打印map中的每个键值对:
```
Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
map.forEach((key, value) -> System.out.println(key + " = " + value));
```
相关问题
jdk8中使用forEach
在 JDK8 中,可以使用 `forEach` 方法来遍历集合中的元素。这个方法是定义在 `java.util.Collection` 接口中的默认方法,因此可以在任何实现了该接口的集合类中使用。
例如,假设有一个 `List` 集合,可以使用以下代码来遍历其中的元素并打印出来:
```java
List<String> list = Arrays.asList("apple", "banana", "orange");
list.forEach(System.out::println);
```
这里使用了方法引用 `System.out::println`,表示将集合中的每个元素作为参数传递给 `println` 方法。也可以使用 Lambda 表达式来实现同样的效果:
```java
list.forEach(item -> System.out.println(item));
```
另外,如果需要在遍历过程中对集合中的元素进行修改,可以使用 `forEach` 方法的重载版本 `forEach(Consumer<? super E> action)`,其中的 `Consumer` 函数式接口可以接受一个参数并返回空。
例如,可以使用以下代码将集合中的字符串都转换成大写并打印出来:
```java
List<String> list = Arrays.asList("apple", "banana", "orange");
list.forEach(item -> {
String upperCase = item.toUpperCase();
System.out.println(upperCase);
});
```
jdk1.8 for foreach stream.foreach的差异
在JDK 1.8中,foreach循环与Stream.foreach方法在功能上有一些差异。
1. Foreach循环:foreach循环是一种传统的循环方式,用于遍历集合或数组中的元素。它可以直接对集合或数组进行迭代,并对每个元素执行指定的操作。例如:
```java
List<String> list = Arrays.asList("A", "B", "C");
for (String element : list) {
System.out.println(element);
}
```
输出结果:
```
A
B
C
```
2. Stream.foreach方法:Stream.foreach是Java 8中引入的Stream API的一部分。它使用函数式编程的方式来操作集合元素。Stream.foreach方法接受一个Consumer函数作为参数,该函数将被应用于每个元素。例如:
```java
List<String> list = Arrays.asList("A", "B", "C");
list.stream().forEach(element -> System.out.println(element));
```
输出结果:
```
A
B
C
```
从功能上看,两者的作用是相同的,都可以用来遍历集合或数组中的元素,并对每个元素执行指定的操作。但是,使用Stream.foreach方法可以更方便地进行函数式编程,并且可以与其他Stream操作(如过滤、映射等)结合使用。
阅读全文