Java forEach 方法是一种实用方法,可用于迭代 Java 集合或流。在使用 Stream 或任何 Java 集合(如 List
、Map
、Set
、Stack
、Queue
等)时,它非常方便.
在本文中,您将找到带有 List、Map 和 Stream 的 Java forEach 方法示例。
Java forEach 方法在 Iterable
接口中定义。由于 Collection
接口扩展了 Iterable
接口,因此该方法可用于所有 Java 集合类。
forEach()
方法将 Consumer
作为参数,并为集合中的每个项目执行由消费者定义的操作。
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
Consumer
是一个函数式接口。它可以使用 Java 的匿名类语法或使用 Lambda 表达式创建:
// Creating a consumer using the anonymous class syntax
Consumer<String> action = new Consumer<String>() {
@Override
public void accept(String s) {
// perform action
System.out.println(s);
}
};
// Creating a Consumer using a lambda expression
Consumer<String> action = s -> {
// perform action
System.out.println(s);
};
// The curly braces can be omitted if the lambda expression's body consists of a single line
Consumer<String> action = s -> System.out.println(s);
现在让我们看看带有 List、Map 和 Stream 的 forEach 方法的示例。
import java.util.Arrays;
import java.util.List;
public class ListForEachExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("John", "Jack", "Sachin", "Mark");
// List forEach with lambda expression
names.forEach(name -> {
System.out.printf("Hello %s%n", name);
});
// List forEach with Method reference
names.forEach(System.out::println);
}
}
# Output
Hello John
Hello Jack
Hello Sachin
Hello Mark
John
Jack
Sachin
Mark
import java.util.HashMap;
import java.util.Map;
public class MapForEachExample {
public static void main(String[] args) {
Map<Integer, String> employeeIdNameMapping = new HashMap<>();
employeeIdNameMapping.put(101, "Jack");
employeeIdNameMapping.put(102, "Maria");
employeeIdNameMapping.put(103, "Robert");
employeeIdNameMapping.put(104, "Joseph");
// Map forEach example
employeeIdNameMapping.forEach((id, name) -> {
System.out.printf("Employee ID: %s, Name: %s%n", id, name);
});
}
}
# Output
Employee ID: 101, Name: Jack
Employee ID: 102, Name: Maria
Employee ID: 103, Name: Robert
Employee ID: 104, Name: Joseph
Java Stream forEach 方法与 Java Collections forEach 方法不同。它在 Stream
接口中定义。但是,Stream forEach 方法也接受 Consumer
。所以它的工作方式与 Collections forEach 方法相同。让我们看一个例子:
import java.util.stream.Stream;
public class StreamForEachExample {
public static void main(String[] args) {
Stream<String> countries = Stream.of("India", "China", "United States", "United Kingdom", "Germany", "France");
// Stream forEach with lambda expression
countries.forEach(name -> {
System.out.printf("Hello %s%n", name);
});
Stream<String> programmingLanguages = Stream.of("Java", "Go", "Rust", "C++", "Swift");
// Stream forEach with Method reference
programmingLanguages.forEach(System.out::println);
Stream<Integer> numbers = Stream.of(2, 5, 7, 8, 10, 23, 44, 68);
// Stream forEach with filter
numbers.filter(num -> num % 2 == 0)
.forEach(num -> System.out.println(num));
}
}
# Output
Hello India
Hello China
Hello United States
Hello United Kingdom
Hello Germany
Hello France
Java
Go
Rust
C++
Swift
2
8
10
44
68
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.callicoder.com/java-foreach-examples/
内容来源于网络,如有侵权,请联系作者删除!