From 4d8f0a48ae285bd681758f5da5ab785fa91b6fa1 Mon Sep 17 00:00:00 2001 From: k0l0ssus Date: Sun, 28 Jan 2018 18:06:11 -0500 Subject: [PATCH 1/2] Add Java vs Vavr Stream sample --- .../samples/java/vavr/VavrSampler.java | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java diff --git a/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java b/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java new file mode 100644 index 0000000000..ae06c97e2e --- /dev/null +++ b/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java @@ -0,0 +1,99 @@ +package com.baeldung.samples.java.vavr; + +import io.vavr.collection.Stream; +import java.util.ArrayList; +import java.util.List; + + +/** + * + * @author baeldung + */ +public class VavrSampler { + + static int[] intArray = new int[]{1, 2, 4}; + static List intList = new ArrayList(); + static int[][] intOfInts = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + + public static void main(String[] args) { + vavrStreamElementAccess(); + System.out.println("===================================="); + vavrParallelStreamAccess(); + System.out.println("===================================="); + vavrFlatMapping(); + System.out.println("===================================="); + vavrStreamManipulation(); + System.out.println("===================================="); + vavrStreamDistinct(); + } + + public static void vavrStreamElementAccess() { + System.out.println("Vavr Element Access"); + System.out.println("===================================="); + Stream vavredStream = Stream.ofAll(intArray); + System.out.println("Vavr index access: " + vavredStream.get(2)); + System.out.println("Vavr head element access: " + vavredStream.get()); + + Stream vavredStringStream = Stream.of("foo", "bar", "baz"); + System.out.println("Find foo " + vavredStringStream.indexOf("foo")); + } + + public static void vavrParallelStreamAccess() { + + System.out.println("Vavr Stream Concurrent Modification"); + System.out.println("===================================="); + Stream vavrStream = Stream.ofAll(intList); + //intList.add(5); + vavrStream.forEach(i -> System.out.println("in a Vavr Stream: " + i)); + +// Stream wrapped = Stream.ofAll(intArray); +// intArray[2] = 5; +// wrapped.forEach(i -> System.out.println("Vavr looped " + i)); + } + + public static void jdkFlatMapping() { + System.out.println("Java flatMapping"); + System.out.println("===================================="); + java.util.stream.Stream.of(42).flatMap(i -> java.util.stream.Stream.generate(() -> { + System.out.println("nested call"); + return 42; + })).findAny(); + } + + public static void vavrFlatMapping() { + System.out.println("Vavr flatMapping"); + System.out.println("===================================="); + Stream.of(42) + .flatMap(i -> Stream.continually(() -> { + System.out.println("nested call"); + return 42; + })) + .get(0); + } + + public static void vavrStreamManipulation() { + System.out.println("Vavr Stream Manipulation"); + System.out.println("===================================="); + List stringList = new ArrayList<>(); + stringList.add("foo"); + stringList.add("bar"); + stringList.add("baz"); + Stream vavredStream = Stream.ofAll(stringList); + vavredStream.forEach(item -> System.out.println("Vavr Stream item: " + item)); + Stream vavredStream2 = vavredStream.insert(2, "buzz"); + vavredStream2.forEach(item -> System.out.println("Vavr Stream item after stream addition: " + item)); + stringList.forEach(item -> System.out.println("List item after stream addition: " + item)); + Stream deletionStream = vavredStream.remove("bar"); + deletionStream.forEach(item -> System.out.println("Vavr Stream item after stream item deletion: " + item)); + + } + + public static void vavrStreamDistinct() { + Stream vavredStream = Stream.of("foo", "bar", "baz", "buxx", "bar", "bar", "foo"); + Stream distinctVavrStream = vavredStream.distinctBy((y, z) -> { + return y.compareTo(z); + }); + distinctVavrStream.forEach(item -> System.out.println("Vavr Stream item after distinct query " + item)); + + } +} From b070f3ddaa207a66101a5ea1e51ad4e52854ae97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carsten=20Gr=C3=A4f?= Date: Mon, 29 Jan 2018 07:37:17 +0100 Subject: [PATCH 2/2] fixed formatting --- .../samples/java/vavr/VavrSampler.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java b/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java index ae06c97e2e..f4e0728f32 100644 --- a/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java +++ b/vavr/src/main/java/com/baeldung/samples/java/vavr/VavrSampler.java @@ -1,9 +1,9 @@ package com.baeldung.samples.java.vavr; -import io.vavr.collection.Stream; import java.util.ArrayList; import java.util.List; +import io.vavr.collection.Stream; /** * @@ -11,12 +11,12 @@ import java.util.List; */ public class VavrSampler { - static int[] intArray = new int[]{1, 2, 4}; - static List intList = new ArrayList(); - static int[][] intOfInts = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; + static int[] intArray = new int[] { 1, 2, 4 }; + static List intList = new ArrayList<>(); + static int[][] intOfInts = new int[][] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; public static void main(String[] args) { - vavrStreamElementAccess(); + vavrStreamElementAccess(); System.out.println("===================================="); vavrParallelStreamAccess(); System.out.println("===================================="); @@ -43,12 +43,12 @@ public class VavrSampler { System.out.println("Vavr Stream Concurrent Modification"); System.out.println("===================================="); Stream vavrStream = Stream.ofAll(intList); - //intList.add(5); + // intList.add(5); vavrStream.forEach(i -> System.out.println("in a Vavr Stream: " + i)); -// Stream wrapped = Stream.ofAll(intArray); -// intArray[2] = 5; -// wrapped.forEach(i -> System.out.println("Vavr looped " + i)); + // Stream wrapped = Stream.ofAll(intArray); + // intArray[2] = 5; + // wrapped.forEach(i -> System.out.println("Vavr looped " + i)); } public static void jdkFlatMapping() { @@ -65,9 +65,9 @@ public class VavrSampler { System.out.println("===================================="); Stream.of(42) .flatMap(i -> Stream.continually(() -> { - System.out.println("nested call"); - return 42; - })) + System.out.println("nested call"); + return 42; + })) .get(0); }