Skip to content

Commit a55d6f4

Browse files
committed
нашел хорошое решение для removeByName
1 parent 32186ce commit a55d6f4

File tree

3 files changed

+16
-42
lines changed

3 files changed

+16
-42
lines changed

src/main/java/com/epam/izh/rd/online/entity/Author.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* 5) Переопределить методы equals и hashCode - используйте генерацию (не забывайте alt+inset)
1919
* 6) Переопределить метод toString с выводом всех полей (не забывайте alt+inset)
2020
*/
21-
public class Author{
21+
public class Author {
2222
private String name;
2323
private String lastName;
2424
private LocalDate birthdate;

src/main/java/com/epam/izh/rd/online/repository/SimpleAuthorRepository.java

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,41 +14,17 @@ public SimpleAuthorRepository(Author[] authors) {
1414
this.authors = authors;
1515
}
1616

17-
/**
18-
* Метод должен сохранять автора в массив authors.
19-
* Массив при каждом сохранении должен увеличиваться в размере ровно на 1.
20-
* То есть он ровно того размера, сколько сущностей мы в него сохранили.
21-
* <p>
22-
* Если на вход для сохранения приходит автор, который уже есть в массиве (сохранен), то автор не сохраняется и
23-
* метод возвращает false.
24-
* <p>
25-
* Можно сравнивать только по полному имени (имя и фамилия), считаем, что двух авторов
26-
* с одинаковыми именем и фамилией быть не может.
27-
* Подсказка - можно использовать для проверки метод findByFullName.
28-
* <p>
29-
* Если сохранение прошло успешно, метод должен вернуть true.
30-
*/
3117
@Override
3218
public boolean save(Author author) {
3319

3420
if (findByFullName(author.getName(), author.getLastName()) == null) {
35-
// Author[] array = Arrays.copyOf(authors, authors.length + 1);
36-
// array[array.length - 1] = author;
37-
// authors = array;
38-
3921
authors = ArrayUtils.add(authors, new Author(author));
4022
return true;
4123
}
4224

4325
return false;
4426
}
4527

46-
/**
47-
* Метод должен находить в массиве authors автора по имени и фамилии (считаем, что двух авторов
48-
* с одинаковыми именем и фамилией быть не может.)
49-
* <p>
50-
* Если автор с таким именем и фамилией найден - возвращаем его, если же не найден, метод должен вернуть null.
51-
*/
5228
@Override
5329
public Author findByFullName(String name, String lastname) {
5430

@@ -76,8 +52,7 @@ public Author findByFullName(String name, String lastname) {
7652
public boolean remove(Author author) {
7753

7854
if (findByFullName(author.getName(), author.getLastName()) != null) {
79-
80-
authors = ArrayUtils.remove(authors, ArrayUtils.indexOf(authors, author));
55+
authors = ArrayUtils.removeElement(authors, author);
8156
return true;
8257
}
8358

src/main/java/com/epam/izh/rd/online/repository/SimpleSchoolBookRepository.java

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -64,23 +64,22 @@ public boolean removeByName(String name) {
6464

6565
boolean result = false;
6666
SchoolBook[] tempSchoolBook = schoolBooks;
67-
int i=0;
6867

69-
for (SchoolBook schoolBook : schoolBooks) {
70-
if (schoolBook.getName().equals(name)) {
71-
i = tempSchoolBook.length;
72-
tempSchoolBook = ArrayUtils.remove(schoolBooks, ArrayUtils.indexOf(schoolBooks, schoolBook));
73-
result = true;
74-
}
75-
}
68+
schoolBooks=ArrayUtils.removeElements(schoolBooks, findByName(name));
7669

77-
if (result) {
78-
if(i==1){
79-
schoolBooks = new SchoolBook[0];
80-
} else {
81-
schoolBooks = tempSchoolBook;
82-
}
83-
}
70+
// for (SchoolBook schoolBook : schoolBooks) {
71+
// if (schoolBook.getName().equals(name)) {
72+
//
73+
// if (tempSchoolBook.length == 1) {
74+
// tempSchoolBook = new SchoolBook[0];
75+
// } else {
76+
// tempSchoolBook = ArrayUtils.removeElement(schoolBooks, schoolBook);
77+
// }
78+
// result = true;
79+
// }
80+
// }
81+
82+
// schoolBooks = tempSchoolBook;
8483

8584
return result;
8685
}

0 commit comments

Comments
 (0)