Chr*_*ell 4 java arrays search arraylist bluej
我要在bluej中创建一个图书馆系统,它必须能够搜索一本书.但是,我有一个问题.当我尝试搜索一本书时,结果总是没有可用的书籍......我如何对此进行排序,以便结果显示该书可用?
private List<Book> collection;
public Library()
{
collection = new ArrayList<Book>();
}
public void addBook(Book book)
{
collection.add(book);
}
public String titleSearch()
{
String titleSearch = "\n ";
for(int i = 0; i < collection.size(); i++){
if(titleSearch.equalsIgnoreCase(collection.get(i).getTitle())){
titleSearch = ("\n Book Avaliable");
}else{
titleSearch = ("\n No Books Avaliable ");
}
}
return titleSearch;
}
Run Code Online (Sandbox Code Playgroud)
首先,在您的代码中 - 只有最后一本书很重要,如果您找到合适的书籍,则需要中断,因为在找到书籍后无需检查提醒(并将值重置为"未找到书籍") .
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 ");
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的收藏是空的并且您搜索了一本书(显然不存在),则上述剧照会失败.
您可以通过避免以下方式解决问题并改进解决方案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
}
}
Run Code Online (Sandbox Code Playgroud)
这样你开始悲观 - 书不存在,如果你以后发现它,你就"改变主意",并停止这个结果.
上面仍然缺少你实际上正在寻找的标题,这可以通过添加它作为参数并寻找它来实现:
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
}
Run Code Online (Sandbox Code Playgroud)
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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1971 次 |
| 最近记录: |