Bael-6331: Adding changes for creating and checking empty streams (#14047)
* BAEL-6331: Create EmptyStreams.java * BAEL-6331: Create EmptyStreamsUnitTest.java
This commit is contained in:
parent
7a8afbb58f
commit
9fe90d4663
|
@ -0,0 +1,49 @@
|
||||||
|
package com.baeldung.streams.emptystreams;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
public class EmptyStreams {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
createEmptyStreams();
|
||||||
|
checkForEmptyStreamUsingSupplier();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void createEmptyStreams() {
|
||||||
|
|
||||||
|
// Using Stream.empty()
|
||||||
|
Stream<String> emptyStream = Stream.empty();
|
||||||
|
System.out.println(emptyStream.findAny().isEmpty());
|
||||||
|
|
||||||
|
// Using Stream.of()
|
||||||
|
emptyStream = Stream.of();
|
||||||
|
System.out.println(emptyStream.findAny().isEmpty());
|
||||||
|
|
||||||
|
// Empty Stream of primitive type
|
||||||
|
IntStream emptyIntStream = IntStream.of(new int[] {});
|
||||||
|
System.out.println(emptyIntStream.findAny().isEmpty());
|
||||||
|
|
||||||
|
// Using Arrays.stream()
|
||||||
|
emptyIntStream = Arrays.stream(new int[] {});
|
||||||
|
System.out.println(emptyIntStream.findAny().isEmpty());
|
||||||
|
|
||||||
|
// Using list.stream()
|
||||||
|
Stream<Integer> collectionStream = new ArrayList<Integer>().stream();
|
||||||
|
System.out.println(collectionStream.findAny().isEmpty());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void checkForEmptyStreamUsingSupplier() {
|
||||||
|
Supplier<Stream<Integer>> streamSupplier = () -> Stream.of(1, 2, 3, 4, 5).filter(number -> number > 5);
|
||||||
|
|
||||||
|
Optional<Integer> result1 = streamSupplier.get().findAny();
|
||||||
|
System.out.println(result1.isEmpty());
|
||||||
|
Optional<Integer> result2 = streamSupplier.get().findFirst();
|
||||||
|
System.out.println(result2.isEmpty());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
package com.baeldung.streams.emptystreams;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class EmptyStreamsUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenEmptyStreams_findAnyReturnsAnEmptyOptional() {
|
||||||
|
|
||||||
|
Stream<String> emptyStream = Stream.empty();
|
||||||
|
assertTrue(emptyStream.findAny().isEmpty());
|
||||||
|
|
||||||
|
emptyStream = Stream.of();
|
||||||
|
assertTrue(emptyStream.findAny().isEmpty());
|
||||||
|
|
||||||
|
IntStream emptyIntStream = IntStream.of(new int[] {});
|
||||||
|
assertTrue(emptyIntStream.findAny().isEmpty());
|
||||||
|
|
||||||
|
emptyIntStream = Arrays.stream(new int[] {});
|
||||||
|
assertTrue(emptyIntStream.findAny().isEmpty());
|
||||||
|
|
||||||
|
Stream<Integer> collectionStream = new ArrayList<Integer>().stream();
|
||||||
|
assertTrue(collectionStream.findAny().isEmpty());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenAStreamToSupplier_NewInstanceOfTheStreamIsReturnedForEveryGetCall() {
|
||||||
|
Supplier<Stream<Integer>> streamSupplier = () -> Stream.of(1, 2, 3, 4, 5).filter(number -> number > 5);
|
||||||
|
|
||||||
|
Optional<Integer> result1 = streamSupplier.get().findAny();
|
||||||
|
assertTrue(result1.isEmpty());
|
||||||
|
Optional<Integer> result2 = streamSupplier.get().findFirst();
|
||||||
|
assertTrue(result2.isEmpty());
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue