diff --git a/BookCollection.java b/BookCollection.java index 688804d..b7a725d 100644 --- a/BookCollection.java +++ b/BookCollection.java @@ -2,6 +2,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map.Entry; +import java.util.Optional; 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..93d42f9 100644 --- a/Exercise.java +++ b/Exercise.java @@ -21,7 +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")); - 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")); } }