Skip to content

Commit d351aa7

Browse files
committed
Refactor intermediateOperations.
1 parent 068bdd3 commit d351aa7

File tree

23 files changed

+106
-72
lines changed

23 files changed

+106
-72
lines changed
Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF", "CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),
@@ -19,14 +19,19 @@
1919

2020
The `filter` method is used to eliminate elements based on a criteria.
2121

22+
#### Example: Get all females footballers over 23 years old.
23+
2224
```java
2325
List<Footballer> collect = footballerList.stream()
2426
.filter(footballer -> footballer.getGender().equals(Gender.FEMALE))
2527
.filter(footballer -> footballer.getAge() > 23)
2628
.collect(Collectors.toList());
29+
```
2730

28-
//List collect contains -
29-
//{name='Jennifer', age=29, gender=FEMALE, positions=[CF, CAM]} &
30-
//{name='Alexia', age=25, gender=FEMALE, positions=[CAM, RF, LF]}
31+
#### Output:
32+
33+
```
34+
{name='Jennifer', age=29, gender=FEMALE, positions=[CF, CAM]}
35+
{name='Alexia', age=25, gender=FEMALE, positions=[CAM, RF, LF]}
3136
```
3237

src/test/java/com/github/streams/learn/basics/intermediate_operations/B_Map.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF","CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),
@@ -20,15 +20,18 @@
2020
The `map()` produces a new stream after applying a function to each element of the original stream. The new stream could
2121
be of different type.
2222

23+
#### Example: Get all females footballers over 24 years old and count them.
24+
2325
```java
2426
long femalesMoreThan24y = footballerList.stream()
2527
.filter(footballer -> footballer.getGender().equals(Gender.FEMALE))
2628
.map(Footballer::getAge)
2729
.filter(age -> age > 24)
2830
.count();
31+
```
2932

30-
System.out.
33+
#### Output:
3134

32-
println("femalesMoreThan24y = "+femalesMoreThan24y);
33-
//prints femalesMoreThan24y = 2
35+
```
36+
femalesMoreThan24y = 2
3437
```

src/test/java/com/github/streams/learn/basics/intermediate_operations/C_FlatMap.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF","CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),
@@ -20,16 +20,19 @@
2020
A stream can hold complex data structures like Stream<List<String>>. In cases like this, `flatMap()` helps us to flatten
2121
the data structure to simplify further operations.
2222

23+
#### Example: Get all positions of male footballers less than 30 years old.
24+
2325
```java
2426
String allPositionsOfMaleLessThan30y = footballerList.stream()
2527
.filter(footballer -> footballer.getGender().equals(Gender.MALE))
2628
.filter(footballer -> footballer.getAge() < 30)
2729
.map(Footballer::getPositions)
2830
.flatMap(Collection::stream)
2931
.collect(Collectors.joining(","));
32+
```
3033

31-
System.out.
34+
#### Output:
3235

33-
println("allPositionsOfMaleLessThan30y = "+allPositionsOfMaleLessThan30y);
34-
//prints allPositionsOfMaleLessThan30y = CF,CAM,LF,CM,CAM,GK,CM,CDM
36+
```
37+
allPositionsOfMaleLessThan30y = CF,CAM,LF,CM,CAM,GK,CM,CDM
3538
```

src/test/java/com/github/streams/learn/basics/intermediate_operations/D_Distinct.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF","CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),
@@ -20,6 +20,8 @@
2020
Returns distinct elements in the stream, eliminating duplicates. It uses the equals() method of the elements to decide
2121
whether two elements are equal or not.
2222

23+
#### Example: Find all unique positions of male footballers less than 30 years old.
24+
2325
```java
2426
String allUniquePositionsOfMaleLessThan30y = footballerList.stream()
2527
.filter(footballer -> footballer.getGender().equals(Gender.MALE))
@@ -28,11 +30,12 @@ whether two elements are equal or not.
2830
.flatMap(Collection::stream)
2931
.distinct()
3032
.collect(Collectors.joining(","));
33+
```
3134

32-
System.out.
35+
#### Output:
3336

34-
println("allUniquePositionsOfMaleLessThan30y = "+allUniquePositionsOfMaleLessThan30y);
35-
//prints allUniquePositionsOfMaleLessThan30y = CF,CAM,LF,CM,GK,CDM
37+
```
38+
allUniquePositionsOfMaleLessThan30y = CF,CAM,LF,CM,GK,CDM
3639
```
3740

3841

Lines changed: 34 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF", "CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),
@@ -19,23 +19,43 @@
1919

2020
The `sorted` method is used to sort the stream.
2121

22+
#### Example: Sort footballers by Gender and if they have the same gender sort by their names.
2223
```java
2324
List<Footballer> sortByGenderAndName= footballerList.stream()
2425
.sorted(Comparator.comparing(Footballer::getGender).thenComparing(Footballer::getName))
2526
.collect(Collectors.toList());
2627

27-
System.out.println("sortByGenderAndName = " + sortByGenderAndName);
28-
29-
//prints (prettified) sortByGenderAndName = [
30-
//Footballer{name='Arthur', age=23, gender=MALE, positions=[CM, CAM]},
31-
//Footballer{name='Ibrahim', age=28, gender=MALE, positions=[CF, CAM, LF]},
32-
//Footballer{name='Messi', age=32, gender=MALE, positions=[CF, CAM, RF]},
33-
//Footballer{name='Surinder', age=20, gender=MALE, positions=[CM, CDM]},
34-
//Footballer{name='Manoj', age=27, gender=MALE, positions=[GK]},
35-
//Footballer{name='Alexia', age=25, gender=FEMALE, positions=[CAM, RF, LF]},
36-
//Footballer{name='Jana', age=17, gender=FEMALE, positions=[CB]},
37-
//Footballer{name='Jennifer', age=29, gender=FEMALE, positions=[CF, CAM]},
38-
//]
28+
```
29+
30+
#### Output:
31+
32+
```java
33+
sortByGenderAndName =[
34+
35+
Footballer {
36+
name = 'Arthur', age = 23, gender = MALE, positions =[CM, CAM]},
37+
38+
Footballer {
39+
name = 'Ibrahim', age = 28, gender = MALE, positions =[CF, CAM, LF]},
40+
41+
Footballer {
42+
name = 'Messi', age = 32, gender = MALE, positions =[CF, CAM, RF]},
43+
44+
Footballer {
45+
name = 'Surinder', age = 20, gender = MALE, positions =[CM, CDM]},
46+
47+
Footballer {
48+
name = 'Cristiano Ronaldo', age = 27, gender = MALE, positions =[GK]},
49+
50+
Footballer {
51+
name = 'Alexia', age = 25, gender = FEMALE, positions =[CAM, RF, LF]},
52+
53+
Footballer {
54+
name = 'Jana', age = 17, gender = FEMALE, positions =[CB]},
55+
56+
Footballer {
57+
name = 'Jennifer', age = 29, gender = FEMALE, positions =[CF, CAM]},
58+
]
3959
```
4060

4161

src/test/java/com/github/streams/learn/basics/intermediate_operations/F_Peek.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF", "CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),
@@ -34,7 +34,7 @@ println("malePlayerCount = "+malePlayerCount);
3434
// prints
3535
// footballer = Footballer{name='Surinder', age=20, gender=MALE, positions=[CM, CDM]}
3636
// footballer = Footballer{name='Arthur', age=23, gender=MALE, positions=[CM, CAM]}
37-
// footballer = Footballer{name='Manoj', age=27, gender=MALE, positions=[GK]}
37+
// footballer = Footballer{name='Cristiano Ronaldo', age=27, gender=MALE, positions=[GK]}
3838
// footballer = Footballer{name='Ibrahim', age=28, gender=MALE, positions=[CF, CAM, LF]}
3939
// footballer = Footballer{name='Messi', age=32, gender=MALE, positions=[CF, CAM, RF]}
4040
// malePlayerCount = 5

src/test/java/com/github/streams/learn/basics/intermediate_operations/G_Limit.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF","CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),

src/test/java/com/github/streams/learn/basics/intermediate_operations/H_Skip.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF","CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),

src/test/java/com/github/streams/learn/basics/intermediate_operations/I_TakeWhile.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF", "CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),

src/test/java/com/github/streams/learn/basics/intermediate_operations/J_DropWhile.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Data Set
22

33
```java
4-
private List<Footballer> getFootballers() {
4+
List<Footballer> getFootballers() {
55
return List.of(
66
new Footballer("Messi", 32, Gender.MALE, List.of("CF", "CAM", "RF")),
77
new Footballer("Ibrahim", 28, Gender.MALE, List.of("CF", "CAM", "LF")),
88
new Footballer("Arthur", 23, Gender.MALE, List.of("CM", "CAM")),
9-
new Footballer("Manoj", 27, Gender.MALE, List.of("GK")),
9+
new Footballer("Cristiano Ronaldo", 27, Gender.MALE, List.of("GK")),
1010
new Footballer("Surinder", 20, Gender.MALE, List.of("CM", "CDM")),
1111
new Footballer("Jennifer", 29, Gender.FEMALE, List.of("CF", "CAM")),
1212
new Footballer("Jana", 17, Gender.FEMALE, List.of("CB")),

0 commit comments

Comments
 (0)