Как заполнить hashmap параметрами объекта другого класса?
Необходимо разработать систему учета книг. Нужно создать два класса: книга Book и библиотека Library.
Класс Book должен состоять из автора книги и ее названия. Оба свойства должны быть проинициализированы в момент создания книги и изменение состояния объекта после его создания запрещено. Необходимо переопределить методы equals() и hashcode(), а также toString(). Класс Library должен выполнять роль хранилища книг в виде списка и выполнять следующие действия:
- Добавить книгу в библиотеку
- Удалить книгу из библиотеки
- Найти одну книгу по названию
- Вернуть все книги по автору
Загвоздка в том, что я не знаю, как добавлять состояния созданного объект в 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, чтобы ссылаться на геттеры,но результат не оправдал ожидания.