Skip to content

Commit 0494bb3

Browse files
committed
Functional style programming - extending API
1 parent 1c0cb4e commit 0494bb3

File tree

1 file changed

+13
-0
lines changed
  • Chapter09/P199_StreamComparators/src/main/java/modern/challenge

1 file changed

+13
-0
lines changed

Chapter09/P199_StreamComparators/src/main/java/modern/challenge/Main.java

+13
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.util.ArrayList;
44
import java.util.Comparator;
5+
import static java.util.Comparator.comparing;
6+
import static java.util.Comparator.nullsLast;
57
import java.util.List;
68

79
public class Main {
@@ -157,5 +159,16 @@ public static void main(String[] args) {
157159
(s1, s2) -> Character.compare(s1.charAt(s1.length() - 1),
158160
s2.charAt(s2.length() - 1)))))
159161
.forEach(System.out::println);
162+
163+
System.out.println();
164+
165+
// same result as the previous example but more readable
166+
Comparator<String> byCharAt = nullsLast(
167+
(s1, s2) -> Character.compare(s1.charAt(s1.length() - 1),
168+
s2.charAt(s2.length() - 1)));
169+
Comparator<Car> byFuelAndCharAt = comparing(Car::getFuel, byCharAt);
170+
cars.stream()
171+
.sorted(byFuelAndCharAt)
172+
.forEach(System.out::println);
160173
}
161174
}

0 commit comments

Comments
 (0)