zoukankan      html  css  js  c++  java
  • java8之Spliterator

    基本用法:

    import java.util.Arrays;
    import java.util.Spliterator;
    import java.util.stream.IntStream;
    
    public class SpliteratorTest {
        /**
         * Spliterator是将一个stream进行对半平分的操作类
         * 
         * Arrays.parallelSetAll 和 IntStream.range可以生成一个指定长度Int的Stream
         * 
         * @param args
         * @throws Exception
         */
        public static void main(String[] args) throws Exception {
            int[] array = new int[10];
            Arrays.parallelSetAll(array, i -> i);
            
            // 这个方法也可以构建一个Stream,然后再构建Spliterator
            Spliterator.OfInt test = IntStream.range(0, 10).spliterator();
            test.forEachRemaining((int value) -> {
                System.out.println(Thread.currentThread().getName() + "--" + value);
            });
            System.out.println("+++++++++++");
            
            Spliterator.OfInt sp = Arrays.spliterator(array);
            // 分割完后sp还剩5个元素,sp1也是5个元素
            Spliterator.OfInt sp1 = sp.trySplit();
            // 分割完后sp1为3个,sp2为2个
            Spliterator.OfInt sp2 = sp1.trySplit();
            
            sp1.forEachRemaining((int value) -> {
                System.out.println(Thread.currentThread().getName() + "--" + value);
            });
            
            System.out.println("------------");
            
            sp2.forEachRemaining((int value) -> {
                System.out.println(Thread.currentThread().getName() + "--" + value);
            });
            
            System.out.println("------------");
            
            sp.forEachRemaining((int value) -> {
                System.out.println(Thread.currentThread().getName() + "--" + value);
            });
        }
    }

    运行结果:

    main--0
    main--1
    main--2
    main--3
    main--4
    main--5
    main--6
    main--7
    main--8
    main--9
    +++++++++++
    main--2
    main--3
    main--4
    ------------
    main--0
    main--1
    ------------
    main--5
    main--6
    main--7
    main--8
    main--9
  • 相关阅读:
    call me
    互相关注请留言!我也会及时关注你的哦!
    tomcat单机多实例
    powerdesigner导出rtf
    IDEA快捷键
    SQLyog Enterprise Trial 试用期问题
    ubuntu 16.04 忘记root密码
    使用Xshell连接ubuntu
    观察者模式(Observer)和发布(Publish/订阅模式(Subscribe)的区别
    jvm方法栈
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/10985658.html
Copyright © 2011-2022 走看看