From 5d0cc83bfd679aa959350988b741c228bdfdad1b Mon Sep 17 00:00:00 2001 From: SteffenLm <33038091+SteffenLm@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:55:46 +0200 Subject: [PATCH 1/2] Solution Optionals 02 --- BookCollection.java | 11 ++++++----- Exercise.java | 8 ++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/BookCollection.java b/BookCollection.java index 688804d..cf8ec96 100644 --- a/BookCollection.java +++ b/BookCollection.java @@ -1,6 +1,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Optional; import java.util.Map.Entry; public record BookCollection(HashMap> collection) { @@ -17,18 +18,18 @@ public void addBook(Author author, Book book) { collection.get(author).add(book); } - public Book getBookByTitle(String title) { + public Optional getBookByTitle(String title) { for (List books : collection.values()) { for (Book b : books) { if (b.title().equals(title)) { - return b; + return Optional.of(b); } } } - return null; + return Optional.empty(); } - public Author getMostDiligentAuthor() { + public Optional getMostDiligentAuthor() { Author mostDiligentAuthor = null; int mostBooks = 0; for (Entry> entry : collection.entrySet()) { @@ -37,6 +38,6 @@ public Author getMostDiligentAuthor() { mostBooks = entry.getValue().size(); } } - return mostDiligentAuthor; + return Optional.ofNullable(mostDiligentAuthor); } } diff --git a/Exercise.java b/Exercise.java index 14125d0..5dbb4e3 100644 --- a/Exercise.java +++ b/Exercise.java @@ -21,7 +21,11 @@ public static void main(String[] args) { collection.addBook(new Author("George RR Martin"), new Book("Das Lied von Eis und Feuer 5")); collection.addBook(new Author("George RR Martin"), new Book("Das Lied von Eis und Feuer 6")); - System.out.println(collection.getBookByTitle("Das Lied von Eis und Feuer 5")); - System.out.println(collection.getMostDiligentAuthor()); + collection.getBookByTitle("Das Lied von Eis und Feuer 5") + .ifPresentOrElse(System.out::println, + () -> System.out.println("Das gesuchte Buch ist nicht vorhanden")); + collection.getMostDiligentAuthor() + .ifPresentOrElse(System.out::println, + () -> System.out.println("Es ist kein entsprechender Autor vorhanden")); } } From a8d2343d0a31d9bee16f7910c029d77e00fdf8b5 Mon Sep 17 00:00:00 2001 From: github-actions <> Date: Thu, 5 Jun 2025 12:56:23 +0000 Subject: [PATCH 2/2] Google Java Format --- BookCollection.java | 2 +- Exercise.java | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/BookCollection.java b/BookCollection.java index cf8ec96..b7a725d 100644 --- a/BookCollection.java +++ b/BookCollection.java @@ -1,8 +1,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; -import java.util.Optional; import java.util.Map.Entry; +import java.util.Optional; public record BookCollection(HashMap> collection) { diff --git a/Exercise.java b/Exercise.java index 5dbb4e3..93d42f9 100644 --- a/Exercise.java +++ b/Exercise.java @@ -21,11 +21,14 @@ public static void main(String[] args) { collection.addBook(new Author("George RR Martin"), new Book("Das Lied von Eis und Feuer 5")); collection.addBook(new Author("George RR Martin"), new Book("Das Lied von Eis und Feuer 6")); - collection.getBookByTitle("Das Lied von Eis und Feuer 5") - .ifPresentOrElse(System.out::println, - () -> System.out.println("Das gesuchte Buch ist nicht vorhanden")); - collection.getMostDiligentAuthor() - .ifPresentOrElse(System.out::println, + collection + .getBookByTitle("Das Lied von Eis und Feuer 5") + .ifPresentOrElse( + System.out::println, () -> System.out.println("Das gesuchte Buch ist nicht vorhanden")); + collection + .getMostDiligentAuthor() + .ifPresentOrElse( + System.out::println, () -> System.out.println("Es ist kein entsprechender Autor vorhanden")); } }