From 21dec386b40783cc88cc8a8b567a643c184e906d Mon Sep 17 00:00:00 2001 From: Ken Kousen Date: Tue, 3 Oct 2023 12:00:48 -0400 Subject: [PATCH] Improve code readability and debug visibility in multiple classes In `UsePerson.java` and `RandomDemo.java`, print statements were added to provide more visibility during debug. In `FlatMapDemo.java`, replaced `size() == 0` with `isEmpty()` for checking empty collections, improving code readability and performance. Added a new generator in `RandomDemo.java`, showing usage of the `DoubleStream` with the `Math::random` method. --- src/main/java/RandomDemo.java | 9 ++++++++- src/main/java/lambdas/UsePerson.java | 1 + src/main/java/streams/FlatMapDemo.java | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/RandomDemo.java b/src/main/java/RandomDemo.java index 90af96c..75bae4e 100644 --- a/src/main/java/RandomDemo.java +++ b/src/main/java/RandomDemo.java @@ -1,13 +1,19 @@ import java.util.OptionalInt; import java.util.Random; +import java.util.stream.DoubleStream; import java.util.stream.IntStream; public class RandomDemo { + @SuppressWarnings("SimplifyStreamApiCallChains") public static void main(String[] args) { + DoubleStream.generate(Math::random) + .limit(10) + .forEach(System.out::println); + Random r = new Random(); int sum = IntStream.generate(() -> r.nextInt(10)) .limit(10) - .map(n -> { + .map(n -> { // this is the peek method System.out.println("n = " + n); return n; }) @@ -22,6 +28,7 @@ public static void main(String[] args) { .peek(System.out::println) .filter(n -> n > 7) .findFirst(); + System.out.println(first); } } diff --git a/src/main/java/lambdas/UsePerson.java b/src/main/java/lambdas/UsePerson.java index 343912d..3fcd32d 100644 --- a/src/main/java/lambdas/UsePerson.java +++ b/src/main/java/lambdas/UsePerson.java @@ -28,6 +28,7 @@ public static void main(String[] args) { // .map(Person::new) // uses the Person(Person) ctr -> Stream .collect(Collectors.toList()); System.out.println(people); + System.out.println(people.getClass().getName()); Person[] peopleArray = names.stream() .map(Person::new) diff --git a/src/main/java/streams/FlatMapDemo.java b/src/main/java/streams/FlatMapDemo.java index c8186dc..ea076d0 100644 --- a/src/main/java/streams/FlatMapDemo.java +++ b/src/main/java/streams/FlatMapDemo.java @@ -44,7 +44,7 @@ public static void main(String[] args) { // stream() on an empty collection already returns an empty stream customers.stream() .flatMap(customer -> - customer.getOrders().size() == 0 ? Stream.empty() : + customer.getOrders().isEmpty() ? Stream.empty() : customer.getOrders().stream()) .forEach(System.out::println);