基于面向对象,结合集合,写图书查询java
时间: 2024-02-07 19:02:28 浏览: 21
好的,基于面向对象和集合,您可以先定义一个 Book 类表示一本书的信息,然后创建一个 BookStore 类表示整个图书库,该类中包含了所有的图书信息。接下来,您可以在 BookStore 类中实现一个查询方法,该方法可以根据书名、作者、还是编号进行查询,并返回查询结果。
具体实现如下:
Book 类:
```java
public class Book {
private String id; // 编号
private String name; // 书名
private String author; // 作者
public Book(String id, String name, String author) {
this.id = id;
this.name = name;
this.author = author;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
}
```
BookStore 类:
```java
import java.util.ArrayList;
import java.util.List;
public class BookStore {
private List<Book> books;
public BookStore() {
// 初始化图书库,这里使用一个 List 存储所有的书籍信息
books = new ArrayList<>();
books.add(new Book("001", "Java编程思想", "Bruce Eckel"));
books.add(new Book("002", "Effective Java", "Joshua Bloch"));
books.add(new Book("003", "Head First Java", "Kathy Sierra & Bert Bates"));
}
/**
* 根据书名、作者或编号进行查询
* @param keyword 查询关键字
* @return 查询结果
*/
public List<Book> search(String keyword) {
List<Book> result = new ArrayList<>();
for (Book book : books) {
// 判断书名、作者或编号是否包含查询关键字
if (book.getName().contains(keyword) ||
book.getAuthor().contains(keyword) ||
book.getId().contains(keyword)) {
result.add(book);
}
}
return result;
}
}
```
在上面的代码中,我们定义了一个 BookStore 类来表示整个图书库。该类中包含了一个 Book 类型的 List,用于存储所有的书籍信息。在 BookStore 类中,我们实现了一个 search 方法,该方法可以根据书名、作者或编号进行查询,并返回查询结果。
接下来,您可以在主函数中调用该方法进行测试:
```java
public static void main(String[] args) {
BookStore store = new BookStore();
String keyword = "Java";
List<Book> result = store.search(keyword);
if (result.isEmpty()) {
System.out.println("未找到相关书籍");
} else {
System.out.println("查询结果如下:");
for (Book book : result) {
System.out.println(book.getId() + " " + book.getName() + " " + book.getAuthor());
}
}
}
```
运行程序后,将会输出查询结果。如果未找到相关书籍,则输出 "未找到相关书籍"。