zoukankan      html  css  js  c++  java
  • Java8-Stream-No.12

    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.UUID;
    import java.util.concurrent.ForkJoinPool;
    import java.util.concurrent.TimeUnit;
    
    public class Streams12 {
    
        public static void main(String[] args) {
            List<String> strings = Arrays.asList("a1", "a2", "b1", "c2", "c1");
    
    //        test1();
    //        test2(strings);
            test3(strings);
    //        test4();
        }
    
        private static void test4() {
            List<String> values = new ArrayList<>(100);
            for (int i = 0; i < 100; i++) {
                UUID uuid = UUID.randomUUID();
                values.add(uuid.toString());
            }
    
            // sequential
    
            long t0 = System.nanoTime();
    
            long count = values
                .parallelStream()
                .sorted((s1, s2) -> {
                    System.out.format("sort:    %s <> %s [%s]
    ", s1, s2, Thread.currentThread().getName());
                    return s1.compareTo(s2);
                })
                .count();
            System.out.println(count);
    
            long t1 = System.nanoTime();
    
            long millis = TimeUnit.NANOSECONDS.toMillis(t1 - t0);
            System.out.println(String.format("parallel sort took: %d ms", millis));
        }
    
        private static void test3(List<String> strings) {
            strings
                .parallelStream()
                .filter(s -> {
                    System.out.format("filter:  %s [%s]
    ", s, Thread.currentThread().getName());
                    return true;
                })
                .map(s -> {
                    System.out.format("map:     %s [%s]
    ", s, Thread.currentThread().getName());
                    return s.toUpperCase();
                })
                .sorted((s1, s2) -> {
                    System.out.format("sort:    %s <> %s [%s]
    ", s1, s2, Thread.currentThread().getName());
                    return s1.compareTo(s2);
                })
                .forEach(s -> System.out.format("forEach: %s [%s]
    ", s, Thread.currentThread().getName()));
        }
    
        private static void test2(List<String> strings) {
            strings
                .parallelStream()
                .filter(s -> {
                    System.out.format("filter:  %s [%s]
    ", s, Thread.currentThread().getName());
                    return true;
                })
                .map(s -> {
                    System.out.format("map:     %s [%s]
    ", s, Thread.currentThread().getName());
                    return s.toUpperCase();
                })
                .forEach(s -> System.out.format("forEach: %s [%s]
    ", s, Thread.currentThread().getName()));
        }
    
        private static void test1() {
            // -Djava.util.concurrent.ForkJoinPool.common.parallelism=5
    
            ForkJoinPool commonPool = ForkJoinPool.commonPool();
            System.out.println(commonPool.getParallelism());
        }
    }
    
  • 相关阅读:
    openstack nova创建虚拟机过程(DEBUG)从接收到cli RESTFul请求到给scheduler发送rpc消息
    openstack源码阅读基础:openstack中Nova组件RESTful请求的具体处理函数确定
    博客园第一搏——Html5 JumpStart学习笔记1:Semantic Structure
    我的CSDN博客http://blog.csdn.net/kuangjian007,欢迎骚扰!
    django第一课:基本介绍
    pku 1142 Smith Number
    使用Eclipse开发X3D
    javascript树形控件第二版
    三种方式获得int的size
    细节决定成败
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10210926.html
Copyright © 2011-2022 走看看