Skip to content

Commit c89625c

Browse files
committed
Add more stream examples
1 parent d420248 commit c89625c

File tree

1 file changed

+134
-0
lines changed

1 file changed

+134
-0
lines changed

src/com/winterbe/java8/Streams5.java

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
package com.winterbe.java8;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
import java.util.stream.Stream;
6+
7+
/**
8+
* Testing the order of execution.
9+
*
10+
* @author Benjamin Winterberg
11+
*/
12+
public class Streams5 {
13+
14+
public static void main(String[] args) {
15+
List<String> stringCollection = new ArrayList<>();
16+
stringCollection.add("ddd2");
17+
stringCollection.add("aaa2");
18+
stringCollection.add("bbb1");
19+
stringCollection.add("aaa1");
20+
stringCollection.add("bbb3");
21+
stringCollection.add("ccc");
22+
stringCollection.add("bbb2");
23+
stringCollection.add("ddd1");
24+
25+
// test1(stringCollection);
26+
// test2(stringCollection);
27+
// test3(stringCollection);
28+
// test4(stringCollection);
29+
// test5(stringCollection);
30+
// test6(stringCollection);
31+
test7(stringCollection);
32+
}
33+
34+
// stream has already been operated upon or closed
35+
private static void test7(List<String> stringCollection) {
36+
Stream<String> stream = stringCollection
37+
.stream()
38+
.filter(s -> s.toLowerCase().startsWith("a"));
39+
40+
stream.anyMatch(s -> true);
41+
stream.noneMatch(s -> true);
42+
}
43+
44+
// short-circuit
45+
private static void test6(List<String> stringCollection) {
46+
stringCollection
47+
.stream()
48+
.filter(s -> {
49+
System.out.println("filter: " + s);
50+
return s.toLowerCase().startsWith("a");
51+
})
52+
.map(s -> {
53+
System.out.println("map: " + s);
54+
return s.toUpperCase();
55+
})
56+
.anyMatch(s -> true);
57+
}
58+
59+
private static void test5(List<String> stringCollection) {
60+
stringCollection
61+
.stream()
62+
.filter(s -> {
63+
System.out.println("filter: " + s);
64+
return s.toLowerCase().startsWith("a");
65+
})
66+
.sorted((s1, s2) -> {
67+
System.out.printf("sort: %s; %s\n", s1, s2);
68+
return s1.compareTo(s2);
69+
})
70+
.map(s -> {
71+
System.out.println("map: " + s);
72+
return s.toUpperCase();
73+
})
74+
.forEach(s -> System.out.println("forEach: " + s));
75+
}
76+
77+
// sorted = horizontal
78+
private static void test4(List<String> stringCollection) {
79+
stringCollection
80+
.stream()
81+
.sorted((s1, s2) -> {
82+
System.out.printf("sort: %s; %s\n", s1, s2);
83+
return s1.compareTo(s2);
84+
})
85+
.filter(s -> {
86+
System.out.println("filter: " + s);
87+
return s.toLowerCase().startsWith("a");
88+
})
89+
.map(s -> {
90+
System.out.println("map: " + s);
91+
return s.toUpperCase();
92+
})
93+
.forEach(s -> System.out.println("forEach: " + s));
94+
}
95+
96+
private static void test3(List<String> stringCollection) {
97+
stringCollection
98+
.stream()
99+
.filter(s -> {
100+
System.out.println("filter: " + s);
101+
return s.toLowerCase().startsWith("a");
102+
})
103+
.map(s -> {
104+
System.out.println("map: " + s);
105+
return s.toUpperCase();
106+
})
107+
.forEach(s -> System.out.println("forEach: " + s));
108+
}
109+
110+
private static void test2(List<String> stringCollection) {
111+
stringCollection
112+
.stream()
113+
.map(s -> {
114+
System.out.println("map: " + s);
115+
return s.toUpperCase();
116+
})
117+
.filter(s -> {
118+
System.out.println("filter: " + s);
119+
return s.toLowerCase().startsWith("a");
120+
})
121+
.forEach(s -> System.out.println("forEach: " + s));
122+
}
123+
124+
private static void test1(List<String> stringCollection) {
125+
stringCollection
126+
.stream()
127+
.filter(s -> {
128+
System.out.println("filter: " + s);
129+
return true;
130+
})
131+
.forEach(s -> System.out.println("forEach: " + s));
132+
}
133+
134+
}

0 commit comments

Comments
 (0)