Skip to content

Commit 4d8f0a4

Browse files
authored
Add Java vs Vavr Stream sample
1 parent bdc785a commit 4d8f0a4

1 file changed

Lines changed: 99 additions & 0 deletions

File tree

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package com.baeldung.samples.java.vavr;
2+
3+
import io.vavr.collection.Stream;
4+
import java.util.ArrayList;
5+
import java.util.List;
6+
7+
8+
/**
9+
*
10+
* @author baeldung
11+
*/
12+
public class VavrSampler {
13+
14+
static int[] intArray = new int[]{1, 2, 4};
15+
static List<Integer> intList = new ArrayList<Integer>();
16+
static int[][] intOfInts = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
17+
18+
public static void main(String[] args) {
19+
vavrStreamElementAccess();
20+
System.out.println("====================================");
21+
vavrParallelStreamAccess();
22+
System.out.println("====================================");
23+
vavrFlatMapping();
24+
System.out.println("====================================");
25+
vavrStreamManipulation();
26+
System.out.println("====================================");
27+
vavrStreamDistinct();
28+
}
29+
30+
public static void vavrStreamElementAccess() {
31+
System.out.println("Vavr Element Access");
32+
System.out.println("====================================");
33+
Stream<Integer> vavredStream = Stream.ofAll(intArray);
34+
System.out.println("Vavr index access: " + vavredStream.get(2));
35+
System.out.println("Vavr head element access: " + vavredStream.get());
36+
37+
Stream<String> vavredStringStream = Stream.of("foo", "bar", "baz");
38+
System.out.println("Find foo " + vavredStringStream.indexOf("foo"));
39+
}
40+
41+
public static void vavrParallelStreamAccess() {
42+
43+
System.out.println("Vavr Stream Concurrent Modification");
44+
System.out.println("====================================");
45+
Stream<Integer> vavrStream = Stream.ofAll(intList);
46+
//intList.add(5);
47+
vavrStream.forEach(i -> System.out.println("in a Vavr Stream: " + i));
48+
49+
// Stream<Integer> wrapped = Stream.ofAll(intArray);
50+
// intArray[2] = 5;
51+
// wrapped.forEach(i -> System.out.println("Vavr looped " + i));
52+
}
53+
54+
public static void jdkFlatMapping() {
55+
System.out.println("Java flatMapping");
56+
System.out.println("====================================");
57+
java.util.stream.Stream.of(42).flatMap(i -> java.util.stream.Stream.generate(() -> {
58+
System.out.println("nested call");
59+
return 42;
60+
})).findAny();
61+
}
62+
63+
public static void vavrFlatMapping() {
64+
System.out.println("Vavr flatMapping");
65+
System.out.println("====================================");
66+
Stream.of(42)
67+
.flatMap(i -> Stream.continually(() -> {
68+
System.out.println("nested call");
69+
return 42;
70+
}))
71+
.get(0);
72+
}
73+
74+
public static void vavrStreamManipulation() {
75+
System.out.println("Vavr Stream Manipulation");
76+
System.out.println("====================================");
77+
List<String> stringList = new ArrayList<>();
78+
stringList.add("foo");
79+
stringList.add("bar");
80+
stringList.add("baz");
81+
Stream<String> vavredStream = Stream.ofAll(stringList);
82+
vavredStream.forEach(item -> System.out.println("Vavr Stream item: " + item));
83+
Stream<String> vavredStream2 = vavredStream.insert(2, "buzz");
84+
vavredStream2.forEach(item -> System.out.println("Vavr Stream item after stream addition: " + item));
85+
stringList.forEach(item -> System.out.println("List item after stream addition: " + item));
86+
Stream<String> deletionStream = vavredStream.remove("bar");
87+
deletionStream.forEach(item -> System.out.println("Vavr Stream item after stream item deletion: " + item));
88+
89+
}
90+
91+
public static void vavrStreamDistinct() {
92+
Stream<String> vavredStream = Stream.of("foo", "bar", "baz", "buxx", "bar", "bar", "foo");
93+
Stream<String> distinctVavrStream = vavredStream.distinctBy((y, z) -> {
94+
return y.compareTo(z);
95+
});
96+
distinctVavrStream.forEach(item -> System.out.println("Vavr Stream item after distinct query " + item));
97+
98+
}
99+
}

0 commit comments

Comments
 (0)