JDK 1.8中forEach的用法

原创 2017年01月03日 21:35:11

Java中遍历容器主要用for,在JDK 1.8中提供了forEach方法,源码如下:

/**
 * Performs the given action for each element of the {@code Iterable}
 * until all elements have been processed or the action throws an
 * exception.  Unless otherwise specified by the implementing class,
 * actions are performed in the order of iteration (if an iteration order
 * is specified).  Exceptions thrown by the action are relayed to the
 * caller.
 *
 * @implSpec
 * <p>The default implementation behaves as if:
 * <pre>{@code
 *     for (T t : this)
 *         action.accept(t);
 * }</pre>
 *
 * @param action The action to be performed for each element
 * @throws NullPointerException if the specified action is null
 * @since 1.8
 */

default void forEach(Consumer<? super T> action) {
    Objects.requireNonNull(action);
    for (T t : this) {
        action.accept(t);
    }
}

用法:

public class ForEach{
    public static void  main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("first");
        list.add("second");
        list.add("third");
        list.add("four");
        list.add("five");

        list.forEach((num)->System.out.println(num));
        return;
    }
}

输出:

first
second
third
four
five
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

jdk1.8 新特性之 forEach 循环遍历

常规情况下我们基本都是这么写的List numbers = new ArrayList<>();//no.1 for(Integer number : numbers){ System.out...

jdk1.8 新特性之 forEach 循环遍历

常规情况下我们基本都是这么写的 List numbers = new ArrayList<>(); //no.1 for(Integer number : numbers){ Sy...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

JDK8 十大新特性详解

本教程将Java8的新特新逐一列出,并将使用简单的代码示例来指导你如何使用默认接口方法,lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口...

Java8 新特性之集合: forEach(Consumer<? super T> action)

Java8 新特性之 forEach下边是JDK1.8.0_121中的源码: /** * Performs the given action for each element of t...

jdk1.8新特性详解

转自:http://www.oschina.net/translate/everything-about-java-8 建议去看原文,此处转载只是为了记录。 这篇文...

jdk1.8 新特性之 default,static 接口关键字

实现接口必需实现其所有方法嘛?在jdk1.7以前是必需的,有了jdk1.8,这个概念可忘记了,接口可以有自己的默认实现了,接口能编写静态方法嘛?jdk1.7以前肯定是不行的,有了jdk1.8又是成了可...

jdk8中的forEach使用return执行下一次遍历

在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,而如果要实现在普通for循环中的效果时,可以使用re...

巧妙利用JDK1.8新特性解决多if判断及其性能测试

先说说场景,最近接第三方的足球走地数据,需要将这些数据入库,设计到一个足球的eventType的整理,我们自己的库中有一套我们自己的eventType,这些eventType包括进球,红黄牌等事件。第...

使用 Java 8 Optional 的正确姿势

我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代...

java使用lambda表达式对List集合进行操作(JDK1.8)

java使用λ表达式遍历集合,结合Predicate使用和过滤条件筛选元素
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)