Во-первых, в ваш код - только последние книги вопросы, вы должны разорвать, если вы нашли подходящую книгу, так как нет необходимости проверять напоминания (и сбросить значение «ни одна книга нашла ") после того, как книга найдена.
for(int i = 0; i < collection.size(); i++){
if(titleSearch.equalsIgnoreCase(collection.get(i).getTitle())){
titleSearch = ("\n Book Avaliable");
break; //<- added a break here, no need to go on iterating and reset titleSearch later on
}else{
titleSearch = ("\n No Books Avaliable ");
}
}
Вышеприведенные кадры терпит неудачу, если ваша коллекция пуста, и вы ищете книги (то есть, очевидно, не существует).
Вы можете решить и улучшить решение, избегая else
:
titleSearch = ("\n No Books Avaliable ");
for(int i = 0; i < collection.size(); i++){
if(titleSearch.equalsIgnoreCase(collection.get(i).getTitle())){
titleSearch = ("\n Book Avaliable");
break; //<- added a break here
}
}
Таким образом, вы начинаете пессимистическим - книга не существует, и вы «передумать», если позже вы найдете его, и останавливается с этот результат.
выше по-прежнему отсутствует название на самом деле вы ищете, и это может быть достигнуто путем добавления его в качестве аргумента и ищет его:
public String searchTitle(String titleSearch) {
if (titleSearch == null) return "\n No Books Avaliable ";
for(int i = 0; i < collection.size(); i++){
if(titleSearch.equalsIgnoreCase(collection.get(i).getTitle())){
return "\n Book Avaliable";
}
}
return "\n No Books Avaliable "; //reachable only if no book found
}
И некоторые последний штрих, чтобы использовать расширенный for each loop :
public String searchTitle(String titleSearch) {
if (titleSearch == null) return "\n No Books Avaliable ";
for(Book b : collection){
if(titleSearch.equalsIgnoreCase(book.getTitle())){
return "\n Book Avaliable";
}
}
return "\n No Books Avaliable "; //reachable only if no book found
}
Два комментария к стилю кодирования: с использованием того же слова, что и имя метода, и локальная переменная ... - довольно плохой стиль. Кроме того: используя цикл «foreach», например «для книги (книга книги: коллекция) {« лучше читать/поддерживать, чем «старый стиль» для цикла. – GhostCat