在上题的基础上构建一个书单类BookList,该类中用一个列表类对象存放书单,提供添加图书(addBook)、查找图书(searchBook)的函数 main函数从键盘输入多个Book添加到书单中,(添加时,提供书的名称、价格、作者、版本号),而后从键盘读入一本书,查找该列表对象中是否包含该书,若包含,输出”found: 该书在列表中的序号”,若不包含,输出“not found”,查找时,提供书的名称、作者、版本号。
import java.util.Iterator;
import java.util.LinkedList;
import java.util.ArrayList;
import java.util.List;
class Book {
public String name;
public int piece;
public String author;
public int version;
public Book(String n, int piece, String a, int v) {
//str.replace(" ", "")
this.name = n;
this.piece = piece;
this.author = a;
this.version = v;
}
@Override
public String toString() {
String str = "name: " + name + ", price: " + piece + ", author: " + author + ", edition: " + version;
return str;
}
public void setName(){
this.name.replace(" ", "");
this.name.toLowerCase();
}
public void setAuthor(){
this.author.replace(" ", "");
this.name.toLowerCase();
}
@Override
public boolean equals(Object obj) {
Book tmp = (Book) obj;
if (this.name.toLowerCase().equals(tmp.name.toLowerCase()) && this.author.toLowerCase().equals(tmp.author.toLowerCase()) && this.version == tmp.version)
return true;
return false;
}
}
class BookList {
List<Book> booklist = new ArrayList<>();
public void addBook(Book tmp){
booklist.add(tmp);
}
public void searchBook(Book tmp){
boolean flag = false;
for(int i = 0;i < booklist.size();i++){
Book book = booklist.get(i);
if(book.name.equals(tmp.name) && book.author.equals(tmp.author) && book.version == tmp.version){
int ans = i;
System.out.println("found: "+ans+" ");
flag = true;
break;
}
}
if(!flag)
System.out.println("not found");
}
}
public class Main{
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
BookList bl = new BookList();
int n = s.nextInt();
for (int i=0; i<n;i++) {
bl.addBook(new Book(s.next(),
s.nextInt(),
s.next(),
s.nextInt()));
}
bl.searchBook(new Book(s.next(),
0,
s.next(),s.nextInt()));
}
}