JAVA8系列教程-forEach
温馨提示:
本文最后更新于 2019年12月15日,已超过 1,735 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
JAVA的forEach是一个实用方法来遍历集合或流,并执行它的每个元件上的特定动作。
1. Java 8 forEach方法
下面的代码片段显示的默认实现的java的forEach方法在Iterable接口。它使该方法可用于除Map之外的所有集合类。
该方法执行每个元素的给定动作的Iterable
直到所有元素都已经被处理或动作抛出异常。
的action
代表接受单个输入参数,并返回任何结果的操作。它是Consumer
接口的一个实例。
default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this ) { action.accept(t); } } |
可以使用此简单语法创建自定义操作。在这里,Object
type必须用集合或流中元素的类型替换。
Consumer<Object> action = new Consumer<Object>() { @Override public void accept(Object t) { //perform action } }; |
2. Java 8流forEach示例
Java程序迭代流的所有元素并执行操作。在此示例中,我们将打印所有偶数。
ArrayList<Integer> numberList = new ArrayList<>(Arrays.asList( 1 , 2 , 3 , 4 , 5 )); Consumer<Integer> action = System.out::println; numberList.stream().filter(n -> n% 2 == 0 ).forEach( action ); |
程序输出。
2 4 |
3.使用List的Java forEach示例
Java程序遍历arraylist所有元素并执行操作。这里的操作就像在控制台中打印出元素一样简单。
Java 8 forEach list elements
ArrayList<Integer> numberList = new ArrayList<>(Arrays.asList( 1 , 2 , 3 , 4 , 5 )); Consumer<Integer> action = System.out::println; numberList.forEach(action); |
程序输出。
1 2 3 4 5 |
4.使用Map的Java forEach示例
Java程序遍历HashMap所有条目并执行操作。我们还可以遍历映射键和值,并对所有元素执行任何操作。
HashMap<String, Integer> map = new HashMap<>(); map.put( "A" , 1 ); map.put( "B" , 2 ); map.put( "C" , 3 ); //1. Map entries Consumer<Map.Entry<String, Integer>> action = System.out::println; map.entrySet().forEach(action); //2. Map keys Consumer<String> actionOnKeys = System.out::println; map.keySet().forEach(actionOnKeys); //3. Map values Consumer<Integer> actionOnValues = System.out::println; map.values().forEach(actionOnValues); |
程序输出。
A= 1 B= 2 C= 3 A B C 1 2 3 |
3.创建自定义动作
我们还可以创建自定义操作方法,以对集合中的每个元素执行自定义逻辑。
HashMap<String, Integer> map = new HashMap<>(); map.put( "A" , 1 ); map.put( "B" , 2 ); map.put( "C" , 3 ); Consumer<Map.Entry<String, Integer>> 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 |
学习愉快!
References:
正文到此结束
- 本文标签: 其他
- 本文链接: https://www.v8en.com/article/229
- 版权声明: 本文由SIMON原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权