Как заполнить hashmap параметрами объекта другого класса?

Необходимо разработать систему учета книг. Нужно создать два класса: книга Book и библиотека Library.

Класс Book должен состоять из автора книги и ее названия. Оба свойства должны быть проинициализированы в момент создания книги и изменение состояния объекта после его создания запрещено. Необходимо переопределить методы equals() и hashcode(), а также toString(). Класс Library должен выполнять роль хранилища книг в виде списка и выполнять следующие действия:

  1. Добавить книгу в библиотеку
  2. Удалить книгу из библиотеки
  3. Найти одну книгу по названию
  4. Вернуть все книги по автору

Загвоздка в том, что я не знаю, как добавлять состояния созданного объект в hashmap.

-ВЫВОД-
Book bookOne = new Book("War and Peace", "Leo Tolstoy");

Book bookTwo = new Book("Anna Karenina", "Leo Tolstoy");

Library library = new Library();

library.addBook(bookOne);

library.addBook(bookTwo);

library.findByName("War and Peace"); //Should return bookOne

library.findByAuthor("Leo Tolstoy"); //Should return bookOne, bookTwo

library.deleteBook(bookTwo);

-ВЫВОД-

МОЙ код)

public class Book{

private final String bookAuthor;

private final String bookName;

Book(String bookAuthor, String bookName) {
    this.bookAuthor = bookAuthor;
    this.bookName = bookName;
}

@Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Book book = (Book) o;
    return Objects.equals(bookAuthor, book.bookAuthor) && Objects.equals(bookName, book.bookName);
}

@Override
public int hashCode() {
    return Objects.hash(bookAuthor, bookName);
}

@Override
public String toString() {
    return "{" +
            "bookAuthor='" + bookAuthor + '\'' +
            ", bookName='" + bookName + '\'' +
            '}';
}

public String getBookAuthor() {
    return bookAuthor;
}

public String getBookName() {
    return bookName;
}

}

public class Library{

private Map<String,String> library = new HashMap<>();

void addBook(Object Book) {

}

}

Если метод addBook принимает в качестве аргумента объект класса Book,то как передать в мапу состояния созданного объекта? Чую что всё очень просто,но я не нагуглил информации по этому поводу. Пробовал создать объект в library, чтобы ссылаться на геттеры,но результат не оправдал ожидания.


Ответы (0 шт):