java 8 foreach_Java 8 forEach

345d961bdd552ee13784f9ba843a5a04.png

Java 8 forEach

java foreach是一种实用程序方法,用于在集合或流上迭代并对其中的每个元素执行特定操作。

1. Java 8 forEach方法

下面的代码片段显示的默认实现的java的forEach方法在可迭代接口。它使该方法可用于除Map之外的所有集合类。

该方法对所有元素执行给定的操作,直到所有元素被处理或动作抛出异常为止。

表示接受单个输入参数且不返回结果的操作。它是接口的一个实例。

Iterable.java

default void forEach(Consumer super T> action) {

Objects.requireNonNull(action);

for (T t : this) {

action.accept(t);

}

}

可以使用此简单语法创建自定义操作。此处类型应替换为集合或流中的元素类型。

Consumer action = new Consumer()

{

@Override

public void accept(Object t)

{

//perform action

}

};

2. Java 8流forEach示例

Java程序迭代流的所有元素并执行操作。在此示例中,我们将打印所有偶数。

Java 8 forEach over流元素

ArrayList numberList = new ArrayList<>(Arrays.asList(1,2,3,4,5));

Consumer action = System.out::println;

numberList.stream().filter(n -> n%2 == 0).forEach( action );

程序输出。

2

4

3.使用List的Java forEach示例

Java程序遍历arraylist的所有元素并执行操作。这里的操作就像在控制台中打印出元素一样简单。

Java 8 forEach列表元素

ArrayList numberList = new ArrayList<>(Arrays.asList(1,2,3,4,5));

Consumer action = System.out::println;

numberList.forEach(action);

程序输出。

1

2

3

4

5

4.使用Map的Java forEach示例

Java程序遍历HashMap的所有条目并执行操作。我们还可以遍历映射键和值,并对所有元素执行任何操作。

Java 8 forEach映射条目

HashMap map = new HashMap<>();

map.put("A", 1);

map.put("B", 2);

map.put("C", 3);

//1. Map entries

Consumer> action = System.out::println;

map.entrySet().forEach(action);

//2. Map keys

Consumer actionOnKeys = System.out::println;

map.keySet().forEach(actionOnKeys);

//3. Map values

Consumer actionOnValues = System.out::println;

map.values().forEach(actionOnValues);

程序输出。

A=1

B=2

C=3

A

B

C

1

2

3

5.创建自定义方法

我们还可以创建自定义操作方法,以对集合中的每个元素执行自定义逻辑。

创建自定义操作方法

HashMap map = new HashMap<>();

map.put("A", 1);

map.put("B", 2);

map.put("C", 3);

Consumer> action = entry ->

{

System.out.println("Key is : " + entry.getKey());

System.out.println("Value is : " + entry.getValue());

};

map.entrySet().forEach(action);

程序输出。

Key is : A

Value is : 1

Key is : B

Value is : 2

Key is : C

Value is : 3

学习愉快!

参考文献:

Java可迭代接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值