From fcf7c84c7d276e60f6c70055683021afc32c595d Mon Sep 17 00:00:00 2001 From: amersmer Date: Fri, 4 Mar 2022 12:19:17 +0300 Subject: [PATCH 1/5] Library --- src/main/java/Book.java | 69 ++++++++++++++++++++++++++++ src/main/java/Library.java | 94 ++++++++++++++++++++++++++++++++++++++ src/main/java/Main.java | 9 ++++ src/test/java/Tests.java | 57 +++++++++++++++++++++++ 4 files changed, 229 insertions(+) create mode 100644 src/main/java/Book.java create mode 100644 src/main/java/Library.java create mode 100644 src/main/java/Main.java create mode 100644 src/test/java/Tests.java diff --git a/src/main/java/Book.java b/src/main/java/Book.java new file mode 100644 index 0000000..3867623 --- /dev/null +++ b/src/main/java/Book.java @@ -0,0 +1,69 @@ +import java.lang.String; +import java.util.Objects; + + +public class Book { + private String name; + private String author; + private String genre; + private String number; + + + public Book(String name, String author, String genre, String number) { + this.name = name; + this.author = author; + this.genre = genre; + this.number = number; + } + + public String toString() { + StringBuilder str = new StringBuilder(); + str.append(name + " ").append(author + " ").append(genre + " ").append(number); + return str.toString(); + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public String getGenre() { + return genre; + } + + public void setGenre(String genre) { + this.genre = genre; + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + @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(name, book.name) && Objects.equals(author, book.author) && Objects.equals(genre, book.genre) && Objects.equals(number, book.number); + } + + @Override + public int hashCode() { + return Objects.hash(name, author, genre, number); + } +} \ No newline at end of file diff --git a/src/main/java/Library.java b/src/main/java/Library.java new file mode 100644 index 0000000..7100673 --- /dev/null +++ b/src/main/java/Library.java @@ -0,0 +1,94 @@ +import java.util.ArrayList; +import java.util.Objects; + +public class Library { + private ArrayList books = new ArrayList(); + + public Library(){} + + public Library(Book b) { + books.add(b); + } + + public Library(Book b, Book c) { + books.add(b); + books.add(c); + } + + public Library(Book b, Book c, Book d) { + books.add(b); + books.add(c); + books.add(d); + } + + public void addBook(Book b) { + books.add(b); + } + + public void deleteBook(Book x) { + books.remove(x); + } + + public void allBooks() { + for (int i = 0; i < books.size(); i++) { + System.out.println(books.get(i)); + } + } + + public Library searchN(String n) { + Library mas = new Library(); + for (int i = 0; i < books.size(); i++) { + String s = books.get(i).getName(); + if (s.contains(n)) { + mas.addBook(books.get(i)); + } + } + return mas; + } + + public Library searchA(String n) { + Library mas = new Library(); + for (int i = 0; i < books.size(); i++) { + String s = books.get(i).getAuthor(); + if (s.contains(n)) { + mas.addBook(books.get(i)); + } + } + return mas; + } + + public Library searchG(String n) { + Library mas = new Library(); + for (int i = 0; i < books.size(); i++) { + String s = books.get(i).getGenre(); + if (s.contains(n)) { + mas.addBook(books.get(i)); + } + } + return mas; + } + + public Library searchNum(String n) { + Library mas = new Library(); + for (int i = 0; i < books.size(); i++) { + String s = books.get(i).getNumber(); + if (s.contains(n)) { + mas.addBook(books.get(i)); + } + } + return mas; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Library library = (Library) o; + return Objects.equals(books, library.books); + } + + @Override + public int hashCode() { + return Objects.hash(books); + } +} \ No newline at end of file diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 0000000..6ef1360 --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,9 @@ +public class Main { + public static void main(String[] args) { + Book f = new Book("ПП", "Egor", "gachi", "A3"); + Library l = new Library(); + l.addBook(f); + f.setName("->"); + l.addBook(f); + } +} \ No newline at end of file diff --git a/src/test/java/Tests.java b/src/test/java/Tests.java new file mode 100644 index 0000000..376e7ef --- /dev/null +++ b/src/test/java/Tests.java @@ -0,0 +1,57 @@ +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; + +public class Tests { + @Test + public void addBook() { + Book first = new Book("GG", "Egor", "gachi", "A3"); + Library expected = new Library(first); + Library n = new Library(); + n.addBook(first); + assertEquals(expected, n); + } + + @Test + public void deleteBook() { + Book first = new Book("GG", "Egor", "gachi", "A3"); + Book second = new Book("Sasha Lukichev", "Egor", "gachi", "A3"); + Library expected = new Library(second); + Library n = new Library(first, second); + n.deleteBook(first); + assertEquals(expected, n); + } + + @Test + public void changeBook() { + Book expected = new Book("GG", "Egor", "gachi", "A3"); + Book expected1 = new Book("GG", "Egorka", "gachi", "A3"); + Book expected2 = new Book("GG", "Egorka", "gachist", "A3"); + Book expected3 = new Book("GG", "Egorka", "gachist", "A4"); + Book n = new Book("Sasha Lukichev", "Egor", "gachi", "A3"); + n.setName("GG"); + assertEquals(expected,n); + n.setAuthor("Egorka"); + assertEquals(expected1,n); + n.setGenre("gachist"); + assertEquals(expected2,n); + n.setNumber("A4"); + assertEquals(expected3,n); + } + + @Test + public void findBookName(){ + Book first = new Book("GG", "Egor", "gachi", "A3"); + Book second = new Book("Sasha Lukichev", "Egor", "gachi", "A3"); + Book third = new Book("GG", "Egor", "gachi", "A4"); + Library lib = new Library(first, second, third); + String str = "G"; + String str1 = "A3"; + Library expected = new Library(first); + Library n = new Library(); + n = lib.searchN(str).searchNum(str1); + assertEquals(expected,n); + } +} \ No newline at end of file From 2929db2fe86d1b751b6e71d41ef1d72ade9d654e Mon Sep 17 00:00:00 2001 From: amersmer Date: Fri, 18 Mar 2022 18:24:45 +0300 Subject: [PATCH 2/5] Update Main.java --- src/main/java/Main.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 6ef1360..582b740 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,9 +1,10 @@ public class Main { public static void main(String[] args) { - Book f = new Book("ПП", "Egor", "gachi", "A3"); - Library l = new Library(); - l.addBook(f); - f.setName("->"); - l.addBook(f); + Book first = new Book("GG", "Egor", "gachi", "A3"); + Book second = new Book("Sasha Lukichev", "Egor", "gachi", "A3"); + Book third = new Book("GG", "Egor", "gachi", "A4"); + Library lib = new Library(first, second); + lib.addBook(third); + lib.allBooks(); } } \ No newline at end of file From 04873d30c2111ae920cb19e1c030e131873cba1f Mon Sep 17 00:00:00 2001 From: amersmer Date: Fri, 1 Apr 2022 14:28:05 +0300 Subject: [PATCH 3/5] 01.04.22 --- src/main/java/Main.java | 10 ---------- src/test/java/Tests.java | 40 +++++++++++++++++++++++++++------------- 2 files changed, 27 insertions(+), 23 deletions(-) delete mode 100644 src/main/java/Main.java diff --git a/src/main/java/Main.java b/src/main/java/Main.java deleted file mode 100644 index 582b740..0000000 --- a/src/main/java/Main.java +++ /dev/null @@ -1,10 +0,0 @@ -public class Main { - public static void main(String[] args) { - Book first = new Book("GG", "Egor", "gachi", "A3"); - Book second = new Book("Sasha Lukichev", "Egor", "gachi", "A3"); - Book third = new Book("GG", "Egor", "gachi", "A4"); - Library lib = new Library(first, second); - lib.addBook(third); - lib.allBooks(); - } -} \ No newline at end of file diff --git a/src/test/java/Tests.java b/src/test/java/Tests.java index 376e7ef..889118b 100644 --- a/src/test/java/Tests.java +++ b/src/test/java/Tests.java @@ -7,7 +7,7 @@ public class Tests { @Test public void addBook() { - Book first = new Book("GG", "Egor", "gachi", "A3"); + Book first = new Book("GG", "Egor", "comedy", "A3"); Library expected = new Library(first); Library n = new Library(); n.addBook(first); @@ -16,8 +16,8 @@ public void addBook() { @Test public void deleteBook() { - Book first = new Book("GG", "Egor", "gachi", "A3"); - Book second = new Book("Sasha Lukichev", "Egor", "gachi", "A3"); + Book first = new Book("GG", "Egor", "comedy", "A3"); + Book second = new Book("Sasha Lukichev", "Egor", "comedy", "A3"); Library expected = new Library(second); Library n = new Library(first, second); n.deleteBook(first); @@ -26,26 +26,26 @@ public void deleteBook() { @Test public void changeBook() { - Book expected = new Book("GG", "Egor", "gachi", "A3"); - Book expected1 = new Book("GG", "Egorka", "gachi", "A3"); - Book expected2 = new Book("GG", "Egorka", "gachist", "A3"); - Book expected3 = new Book("GG", "Egorka", "gachist", "A4"); - Book n = new Book("Sasha Lukichev", "Egor", "gachi", "A3"); + Book expected = new Book("GG", "Egor", "comedy", "A3"); + Book expected1 = new Book("GG", "Egorka", "comedy", "A3"); + Book expected2 = new Book("GG", "Egorka", "drama", "A3"); + Book expected3 = new Book("GG", "Egorka", "drama", "A4"); + Book n = new Book("Sasha Lukichev", "Egor", "comedy", "A3"); n.setName("GG"); assertEquals(expected,n); n.setAuthor("Egorka"); assertEquals(expected1,n); - n.setGenre("gachist"); + n.setGenre("drama"); assertEquals(expected2,n); n.setNumber("A4"); assertEquals(expected3,n); } @Test - public void findBookName(){ - Book first = new Book("GG", "Egor", "gachi", "A3"); - Book second = new Book("Sasha Lukichev", "Egor", "gachi", "A3"); - Book third = new Book("GG", "Egor", "gachi", "A4"); + public void findBookNameAndNumber(){ + Book first = new Book("GG", "Egor", "comedy", "A3"); + Book second = new Book("Sasha Lukichev", "Egor", "comedy", "A3"); + Book third = new Book("GG", "Egor", "comedy", "A4"); Library lib = new Library(first, second, third); String str = "G"; String str1 = "A3"; @@ -54,4 +54,18 @@ public void findBookName(){ n = lib.searchN(str).searchNum(str1); assertEquals(expected,n); } + + @Test + public void findBookAuthorAndGenre(){ + Book first = new Book("GG", "Egor", "comedy", "A3"); + Book second = new Book("GG", "Egorka", "drama", "A3"); + Book third = new Book("GG", "Egorka", "comedy", "A4"); + Library lib = new Library(first, second, third); + String str = "Egor"; + String str1 = "comedy"; + Library expected = new Library(first,third); + Library n = new Library(); + n = lib.searchA(str).searchG(str1); + assertEquals(expected,n); + } } \ No newline at end of file From 9f1e97bb6c4835427e29c89c9b0c1d660bcac2ea Mon Sep 17 00:00:00 2001 From: amersmer Date: Tue, 5 Apr 2022 16:59:56 +0300 Subject: [PATCH 4/5] 05.04.22 --- src/main/java/{ => library}/Book.java | 2 ++ src/main/java/{ => library}/Library.java | 2 ++ src/test/java/Tests.java | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) rename src/main/java/{ => library}/Book.java (98%) rename src/main/java/{ => library}/Library.java (99%) diff --git a/src/main/java/Book.java b/src/main/java/library/Book.java similarity index 98% rename from src/main/java/Book.java rename to src/main/java/library/Book.java index 3867623..0a1b5f8 100644 --- a/src/main/java/Book.java +++ b/src/main/java/library/Book.java @@ -1,3 +1,5 @@ +package library; + import java.lang.String; import java.util.Objects; diff --git a/src/main/java/Library.java b/src/main/java/library/Library.java similarity index 99% rename from src/main/java/Library.java rename to src/main/java/library/Library.java index 7100673..9c96bb0 100644 --- a/src/main/java/Library.java +++ b/src/main/java/library/Library.java @@ -1,3 +1,5 @@ +package library; + import java.util.ArrayList; import java.util.Objects; diff --git a/src/test/java/Tests.java b/src/test/java/Tests.java index 889118b..30a173e 100644 --- a/src/test/java/Tests.java +++ b/src/test/java/Tests.java @@ -1,9 +1,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; +import library.Book; +import library.Library; import org.junit.jupiter.api.Test; -import java.util.ArrayList; - public class Tests { @Test public void addBook() { From fe479823e29e5e13b9a7ccccd0b90cf1c6689c46 Mon Sep 17 00:00:00 2001 From: amersmer Date: Thu, 21 Apr 2022 11:12:18 +0300 Subject: [PATCH 5/5] 21.04.22 --- src/main/java/library/Library.java | 57 +++++++++++++++++------------- src/test/java/Tests.java | 19 +++++++--- 2 files changed, 47 insertions(+), 29 deletions(-) diff --git a/src/main/java/library/Library.java b/src/main/java/library/Library.java index 9c96bb0..45988d3 100644 --- a/src/main/java/library/Library.java +++ b/src/main/java/library/Library.java @@ -6,21 +6,10 @@ public class Library { private ArrayList books = new ArrayList(); - public Library(){} - - public Library(Book b) { - books.add(b); - } - - public Library(Book b, Book c) { - books.add(b); - books.add(c); - } - - public Library(Book b, Book c, Book d) { - books.add(b); - books.add(c); - books.add(d); + public Library(Book... b) { + for (int i = 0; i < b.length; i++) { + books.add(b[i]); + } } public void addBook(Book b) { @@ -31,13 +20,7 @@ public void deleteBook(Book x) { books.remove(x); } - public void allBooks() { - for (int i = 0; i < books.size(); i++) { - System.out.println(books.get(i)); - } - } - - public Library searchN(String n) { + public Library searchName(String n) { Library mas = new Library(); for (int i = 0; i < books.size(); i++) { String s = books.get(i).getName(); @@ -48,7 +31,7 @@ public Library searchN(String n) { return mas; } - public Library searchA(String n) { + public Library searchAuthor(String n) { Library mas = new Library(); for (int i = 0; i < books.size(); i++) { String s = books.get(i).getAuthor(); @@ -59,7 +42,7 @@ public Library searchA(String n) { return mas; } - public Library searchG(String n) { + public Library searchGenre(String n) { Library mas = new Library(); for (int i = 0; i < books.size(); i++) { String s = books.get(i).getGenre(); @@ -70,7 +53,7 @@ public Library searchG(String n) { return mas; } - public Library searchNum(String n) { + public Library searchNumber(String n) { Library mas = new Library(); for (int i = 0; i < books.size(); i++) { String s = books.get(i).getNumber(); @@ -81,6 +64,30 @@ public Library searchNum(String n) { return mas; } + + public Library search(String... arr) { + Library mas = new Library(); + ArrayList listArgs = new ArrayList<>(); + String str = ""; + int count = 0; + for (String a : arr) { + listArgs.add(a); + } + for (int i = 0; i < books.size(); i++) { + count = 0; + str=books.get(i).getName()+" "+books.get(i).getAuthor()+" "+books.get(i).getGenre()+" "+books.get(i).getNumber(); + for (int j = 0; j < listArgs.size(); j++) { + if (str.contains(listArgs.get(j))) { + count += 1; + } + } + if (listArgs.size() == count) { + mas.addBook(books.get(i)); + } + } + return mas; + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/src/test/java/Tests.java b/src/test/java/Tests.java index 30a173e..8ffd80a 100644 --- a/src/test/java/Tests.java +++ b/src/test/java/Tests.java @@ -50,8 +50,7 @@ public void findBookNameAndNumber(){ String str = "G"; String str1 = "A3"; Library expected = new Library(first); - Library n = new Library(); - n = lib.searchN(str).searchNum(str1); + Library n = lib.searchName(str).searchNumber(str1); assertEquals(expected,n); } @@ -64,8 +63,20 @@ public void findBookAuthorAndGenre(){ String str = "Egor"; String str1 = "comedy"; Library expected = new Library(first,third); - Library n = new Library(); - n = lib.searchA(str).searchG(str1); + Library n = lib.searchAuthor(str).searchGenre(str1); + assertEquals(expected,n); + } + + @Test + public void newFind(){ + Book first = new Book("GG", "Egor", "comedy", "A3"); + Book second = new Book("GG", "Egorka", "drama", "A3"); + Book third = new Book("GG", "Egorka", "comedy", "A4"); + Library lib = new Library(first, second, third); + String str = "Egor"; + String str1 = "comedy"; + Library expected = new Library(first,third); + Library n = lib.search(str, str1); assertEquals(expected,n); } } \ No newline at end of file