Close

Java 8 Streams - LongStream.spliterator Examples

Java 8 Streams Java Java API 


Interface:

java.util.stream.LongStream

java.lang.AutoCloseableAutoCloseablejava.util.stream.BaseStreamBaseStreamjava.util.stream.LongStreamLongStreamLogicBig

Method:

Spliterator.OfLong spliterator()

This terminal operation returns a spliterator for the elements of this stream.

Examples


package com.logicbig.example.longstream;

import java.util.Spliterator;
import java.util.stream.LongStream;
import java.util.stream.StreamSupport;

public class SpliteratorExample {

public static void main(String... args) {
Spliterator.OfLong s = LongStream.range(1, 10)
.spliterator();
Spliterator.OfLong s2 = s.trySplit();

LongStream stream1 = StreamSupport.longStream(s, false);
LongStream stream2 = StreamSupport.longStream(s2, false);

System.out.println(" -- first half --");
long sumOfTwice = stream1.peek(System.out::println)
.map(lg -> Math.multiplyExact(lg, 2))
.sum();

System.out.println(" -- second half --");
long sumOfSquared = stream2.peek(System.out::println)
.map(lg -> Math.multiplyExact(lg, lg))
.sum();

long totalSum = Math.addExact(sumOfTwice, sumOfSquared);
System.out.printf("--total sum --%n%s%n", totalSum);
}
}

Output

 -- first half --
5
6
7
8
9
-- second half --
1
2
3
4
--total sum --
100




Parallel streams:

package com.logicbig.example.longstream;

import java.util.Spliterator;
import java.util.stream.LongStream;
import java.util.stream.StreamSupport;

public class SpliteratorExample2 {

public static void main(String... args) {
Spliterator.OfLong s = LongStream.range(1, 10)
.spliterator();
Spliterator.OfLong s2 = s.trySplit();

LongStream stream1 = StreamSupport.longStream(s, true);
LongStream stream2 = StreamSupport.longStream(s2, true);

System.out.println(" -- first half --");
long sumOfTwice = stream1.peek(System.out::println)
.map(lg -> Math.multiplyExact(lg, 2))
.sum();

System.out.println(" -- second half --");
long sumOfSquared = stream2.peek(System.out::println)
.map(lg -> Math.multiplyExact(lg, lg))
.sum();

long totalSum = Math.addExact(sumOfTwice, sumOfSquared);
System.out.printf("--total sum --%n%s%n", totalSum);
}
}

Output

 -- first half --
9
8
7
6
5
-- second half --
3
4
1
2
--total sum --
100




See Also