暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Java 8特性之- forEach() vs forEachOrdered()

研发生产率生态 2020-01-17
901

官网:http://fg.sjdsgw.com

Java 8特性之- forEach() vs forEachOrdered()

本章将介绍forEach()forEachOrdered()方法以及如何使用parallel()方法处理流。

1. forEach()

     Stream#forEach(Consumer<? super T> action)

此方法对流的每个元素执行一个操作。对于并行流,它不能保证维持流的顺序。

2. forEachOrdered()

Stream#forEachOrdered(Consumer<? super T> action)

此方法方法对该流的每个元素执行一个操作,确保对具有已定义的相遇顺序的流按相遇顺序处理每个元素。

e.g

package org.cfj.stream;
/**
 
比较forEachforEachOrdered
 */
public class forEachAndforEachOrderd {
    
public static void main(String[] args) {
        
String str="NB&NB-IoT&Lora";
        
System.out.println("------foreach---------");
        
str.chars().forEach(p->System.out.print((charp));
        
//输出的顺序:NB&NB-IoT&Lora
        
System.out.println("\n--------------");
        
str.chars().forEachOrdered(p->System.out.print((char)p));
        
//输出的顺序:NB&NB-IoT&LoraNB&NB-IoT&Lora
        
System.out.println("\n-----------使用并行流parallel---------------");
        
str.chars().parallel().forEach(p->System.out.print((charp));
        
//输出的顺序:T&oorNL&BaB-IN
        
System.out.println("\n--------------");
        
str.chars().parallel().forEachOrdered(p->System.out.print((char)p));
        
//输出的顺序:NB&NB-IoT&Lora
    
}
}

 


技术群:


文章转载自研发生产率生态,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论