线性搜索数组

时间:2014-04-25 18:42:17

标签: java arrays

我正在开发一个项目,在该项目中,它从.txt文件中读取书名并将它们放入arraylist,然后将arraylist转换为数组,用户输入一个数字作为书籍参考编号,然后它进行线性搜索以找到该书。我只是在使用线性搜索的代码时遇到一点麻烦,这就是我所拥有的:

 private void FindItActionPerformed(java.awt.event.ActionEvent evt) {                                       
String input;
int int1;
input = Input.getText();
int1 = Integer.parseInt(input);

for(int i=0; i<bookList.length; i++){
if (bookList[i].equals(int1)){
    Output1.setText("The Book is " + bookList[i]);
}

}


}                        

它说不兼容类型的.equals(),不知道如何解决,感谢您提供的任何帮助

  public class Book{
String referenceNumber, title;

public Book(String _referenceNumber, String _title){
   referenceNumber = _referenceNumber;
   title = _title;
}
}

ArrayList <Book> Books = new ArrayList <Book> ();
Book [] bookList;

这是Book类和数组

2 个答案:

答案 0 :(得分:2)

bookList[i].referenceNumber.equals(input)

这应解决您的兼容性问题

侧面说明,使用getter和setter来更改成员是不公平的,让你的班级成员公开..

答案 1 :(得分:0)

更多细节:正如GoldRoger正确指出的那样,您需要访问书的referenceNumber。它表示类型不兼容,因为您是将苹果与胡萝卜进行比较,或者将数字与图书进行比较。通过以下方式访问本书的referenceNumber:

bookList[i].referenceNumber.equals(input)

是正确的方法。