From 86567bc2cf59ea3de56789925b6033ce0476dc32 Mon Sep 17 00:00:00 2001 From: Dmitry Sorokin Date: Thu, 8 Jun 2023 21:28:02 +0300 Subject: [PATCH] completed task --- .../ru/faang/school/hashmap/task_2/Book.java | 48 ++++++++++++++ .../ru/faang/school/hashmap/task_2/Main.java | 63 +++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 src/main/java/ru/faang/school/hashmap/task_2/Book.java create mode 100644 src/main/java/ru/faang/school/hashmap/task_2/Main.java diff --git a/src/main/java/ru/faang/school/hashmap/task_2/Book.java b/src/main/java/ru/faang/school/hashmap/task_2/Book.java new file mode 100644 index 00000000..63be99f9 --- /dev/null +++ b/src/main/java/ru/faang/school/hashmap/task_2/Book.java @@ -0,0 +1,48 @@ +package ru.faang.school.hashmap.task_2; + +import java.util.Objects; + +public class Book { + private String title; + private String author; + private int year; + + public Book(String title, String author, int year) { + this.title = title; + this.author = author; + this.year = year; + } + + public String getTitle() { + return title; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Book book = (Book) o; + + if (year != book.year) return false; + if (!Objects.equals(title, book.title)) return false; + return Objects.equals(author, book.author); + } + + @Override + public int hashCode() { + int result = title != null ? title.hashCode() : 0; + result = 31 * result + (author != null ? author.hashCode() : 0); + result = 31 * result + year; + return result; + } + + @Override + public String toString() { + return "Book{" + + "title='" + title + '\'' + + ", author='" + author + '\'' + + ", year=" + year + + '}'; + } +} diff --git a/src/main/java/ru/faang/school/hashmap/task_2/Main.java b/src/main/java/ru/faang/school/hashmap/task_2/Main.java new file mode 100644 index 00000000..a175a9f6 --- /dev/null +++ b/src/main/java/ru/faang/school/hashmap/task_2/Main.java @@ -0,0 +1,63 @@ +package ru.faang.school.hashmap.task_2; + +import javax.swing.plaf.synth.SynthEditorPaneUI; +import java.util.HashMap; +import java.util.Map; + +public class Main { + + private final static Map library = new HashMap<>(); + + public static void addBookToLibrary(Book book, String location) { + if (library.containsKey(book)) { + System.out.println("Ну и приколы - абсолютно две одинаковые книги! Не может такое быть :)"); + } else { + library.put(book, location); + System.out.println(String.format("Книгу \"%s\" положили на %s полку", book.getTitle(), location)); + } + } + + public static void removeBook(String title, String author, int year) { + Book book = new Book(title, author, year); + if (library.containsKey(book)) { + library.remove(book); + System.out.println(String.format("Книга %s автор %s год %d удалена", title, author, year)); + } else { + System.out.println("Такой книги нет - ничего не удалили"); + } + } + + public static void findBook(String title, String author, int year) { + Book book = new Book(title, author, year); + if (library.containsKey(book)) { + System.out.println(String.format("Книга находится %s", library.get(book))); + } else { + System.out.println("Такой книги нет в библиотеке"); + } + } + + public static void printAllBooks() { + for (Map.Entry book: library.entrySet()) { + System.out.println(book + " Местонахождение: " + book.getValue()); + + } + } + + public static void main(String[] args) { + Book book1 = new Book("Мастер и Маргарита", "Михаил Булгаков", 1929); + Book book2 = new Book("Собачье сердце", "Михаил Булгаков", 1925); + Book book3 = new Book("Ревизор", "Николай Гоголь", 1836); + Book book4 = new Book("Отцы и дети", "Иван Тургенев", 1860); + Book book5 = new Book("Мастер и Маргарита", "Михаил Булгаков", 1929); + + addBookToLibrary(book1, "5"); + addBookToLibrary(book5, "10"); + addBookToLibrary(book3, "124"); + printAllBooks(); + + removeBook("asdlas", "dals;kd", 100); + removeBook("Ревизор", "Николай Гоголь", 1836); + printAllBooks(); + + } +}