【发布时间】:2016-04-09 21:08:58
【问题描述】:
总体目标是创建一个图书馆模拟,允许搜索书籍以及交易,例如借书。我只包括了我认为相关的部分。
我在Biblio 类中有数组stock,如下所示:
public class Biblio{
private ArrayList<Book> stock;
以及带有构造函数的Book 类:
public Book(String author , String title)
{
this.author = author;
this.title = title ;
code = null;//this is a String
}
在我尝试使用code(即String)搜索Book 对象的主要方法中,我在Biblio 类中使用findCode 方法:
public Book findCode(String searchedCode){
Book foundBook = null;
for(Book bookObj : stock){
if(bookObj.getCode().equxals(searchedCode)){
bookObj= foundBook;}//
return foundBook;
}
这是我目前拥有的主要方法中的代码:
Biblio libSim;
libSim = generateLib();
...
System.out.println(libSim.findCode(scan.next()));
但输出为空,我认为这是因为foundBook 等于空。但是我无法返回bookObj。
我不知道如何通过搜索code 变量在数组中找到对象。这些书以另一种方法添加到图书馆,并使用 setter 方法将任何等于null 的code 设置为格式为LIB0001 的字符串,这是在我调用findCode 方法之前完成的。
如何通过在数组中搜索特定实例变量来找到对象?
【问题讨论】:
-
问题不是如何比较字符串,而是如何通过比较对象的实例变量在数组中找到对象?当我使用 .equals() 时,我仍然无法正常工作。
-
我有一个使用 lambdas 的答案;我很想发布它。太糟糕了。
-
这不是我可以使用的答案。
-
是的。也许不是今天,但是....这是 JDK 8。你应该尝试一下。