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.p...
  • dounine
  • dounine
  • 2016年11月26日 23:10
  • 8953

jdk1.8新特性详解

转自:http://www.oschina.net/translate/everything-about-java-8 建议去看原文,此处转载只是为了记录。 这篇文...
  • lalioCAT
  • lalioCAT
  • 2016年03月12日 17:48
  • 26704

在Java8的foreach()中使用return/break/continue

今天使用lambda表达式处理集合时,发现对return、break以及continue的使用有点迷惑,于是自己动手测试了一下,才发现在使用foreach()处理集合时不能使用break和contin...
  • lmy86263
  • lmy86263
  • 2016年04月04日 18:32
  • 18526

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

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

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

java使用λ表达式遍历集合,结合Predicate使用和过滤条件筛选元素

JDK1.8源码学习之Map.java

package java.util; import java.util.function.BiConsumer; import java.util.function.BiFunction; impo...
  • ymrfzr
  • ymrfzr
  • 2016年04月21日 14:12
  • 2298

java8-遍历map

Map map = new HashMap(); map.put(1L, "ABC"); map.put(2L, "KK"); map.put(3L, "LV"); map.forEa...

JDK8 十大新特性详解

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

java foreach语法 的ConcurrentModificationException 异常

今天写代码时碰到了一个问题:当我用简写的for语法遍历List时出现ConcurrentModificationExceptio。百思不得其解,无奈找到了ArrayList 的源码,算是知道了为什么会...

JAVA foreach和普通for循环是否需要判断为null

public static void main(String[] args) { List list = null; for(Object s : list){ System.out.p...
  • rnZuoZuo
  • rnZuoZuo
  • 2014年05月06日 13:12
  • 16897
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JDK 1.8中forEach的用法
举报原因:
原因补充:

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