首先定义Book类封装图书信息,再用List存储图书并实现按标题、作者、ISBN等多方式搜索,最后通过示例演示添加和查询功能。

实现图书查询和搜索功能,核心是设计合理的数据结构、使用高效的查找算法,并结合用户输入进行灵活匹配。以下是用Java实现该功能的完整思路和代码示例。
每本图书的信息可以通过一个Book类来封装,包含常见属性如书名、作者、ISBN、出版年份等。
public class Book {
private String title;
private String author;
private String isbn;
private int publicationYear;
public Book(String title, String author, String isbn, int publicationYear) {
this.title = title;
this.author = author;
this.isbn = isbn;
this.publicationYear = publicationYear;
}
// Getter方法
public String getTitle() { return title; }
public String getAuthor() { return author; }
public String getIsbn() { return isbn; }
public int getPublicationYear() { return publicationYear; }
@Override
public String toString() {
return "《" + title + "》 by " + author + " (ISBN:" + isbn + ", " + publicationYear + ")";
}
}
使用ArrayList存储图书数据,提供多种搜索方式:按书名、作者或ISBN模糊匹配。
import java.util.*;
public class BookSearchSystem {
private List<Book> books;
public BookSearchSystem() {
books = new ArrayList<>();
}
// 添加图书
public void addBook(Book book) {
books.add(book);
}
// 按书名搜索(支持部分匹配)
public List<Book> searchByTitle(String keyword) {
List<Book> result = new ArrayList<>();
for (Book book : books) {
if (book.getTitle().toLowerCase().contains(keyword.toLowerCase())) {
result.add(book);
}
}
return result;
}
// 按作者搜索
public List<Book> searchByAuthor(String keyword) {
List<Book> result = new ArrayList<>();
for (Book book : books) {
if (book.getAuthor().toLowerCase().contains(keyword.toLowerCase())) {
result.add(book);
}
}
return result;
}
// 精确匹配ISBN
public Book searchByIsbn(String isbn) {
for (Book book : books) {
if (book.getIsbn().equals(isbn)) {
return book;
}
}
return null; // 未找到
}
// 通用搜索:在标题或作者中查找关键词
public List<Book> search(String keyword) {
List<Book> result = new ArrayList<>();
for (Book book : books) {
if (book.getTitle().toLowerCase().contains(keyword.toLowerCase()) ||
book.getAuthor().toLowerCase().contains(keyword.toLowerCase())) {
result.add(book);
}
}
return result;
}
}
创建图书系统实例,添加数据并执行查询。
立即学习“Java免费学习笔记(深入)”;
public class Main {
public static void main(String[] args) {
BookSearchSystem system = new BookSearchSystem();
// 添加图书
system.addBook(new Book("Java编程思想", "Bruce Eckel", "978-0131872486", 2007));
system.addBook(new Book("Effective Java", "Joshua Bloch", "978-0134685991", 2018));
system.addBook(new Book("深入理解Java虚拟机", "周志明", "978-7111421480", 2013));
// 搜索演示
System.out.println("=== 按关键词搜索 ===");
List<Book> results = system.search("java");
for (Book book : results) {
System.out.println(book);
}
System.out.println("\n=== 按作者搜索 ===");
List<Book> byAuthor = system.searchByAuthor("周志明");
for (Book book : byAuthor) {
System.out.println(book);
}
System.out.println("\n=== 按ISBN精确查找 ===");
Book exact = system.searchByIsbn("978-0134685991");
if (exact != null) {
System.out.println("找到: " + exact);
} else {
System.out.println("未找到该ISBN的图书");
}
}
}
实际项目中可进一步提升性能与体验:
以上就是如何利用Java实现图书查询和搜索功能的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号