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
  • 11841

jdk1.8新特性详解

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

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

Java8 新特性之 forEach下边是JDK1.8.0_121中的源码: /** * Performs the given action for each element of t...
  • HelloMrZheng
  • HelloMrZheng
  • 2017年04月11日 21:12
  • 2291

JDK 8 Lambda 表达式解析Map和List

在这篇文章中,我们将会和您分享如何使用Java 8的foreach 和Lamaba表达式解析List和Map....
  • chancein007
  • chancein007
  • 2017年04月17日 13:45
  • 2728

重新认识HashMap(in JDK1.8)

摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进...
  • u012673089
  • u012673089
  • 2016年07月04日 00:42
  • 5247

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

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

重新认识HashMap(in JDK1.8)

摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMa...
  • SIMPLE1995
  • SIMPLE1995
  • 2016年07月04日 17:41
  • 5351

Map的5种遍历方法

//循环遍历map的方法 public class MapF { public static void main(String[] args) { Map tempMap = new HashM...
  • zhu1qiu
  • zhu1qiu
  • 2017年05月04日 15:14
  • 5236

HashMap在Java1.7与1.8中的区别

基于JDK1.7.0_80与JDK1.8.0_66做的分析   JDK1.7中 使用一个Entry数组来存储数据,但是这个Entry是链表结构,如果插入的key的hashcode相同...
  • jek123456
  • jek123456
  • 2017年06月29日 10:10
  • 717

Java8使用lambda表达式写的一个List,Set,Map遍历工具类

使用感觉就是,麻雀虽小五脏俱全.. 本代码非jdk1.8不支持,首先先定义几个functionInterface: @FunctionalInterface public interface Bean...
  • leiyong0326
  • leiyong0326
  • 2016年07月26日 14:47
  • 4592
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JDK 1.8中forEach的用法
举报原因:
原因补充:

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