设计一个图书管理系统,要求如下:
1、添加一本图书(书名、作者、售价)
2、删除所有指定作者的书
3、查询所有指定作者的书,按照售价升序排序。
4、将图书馆中存储的所有的图书缓存到磁盘上,路径不限。
5、读取本地缓存的所有的图书信息
class Book implements Serializable {
public String bookName;
public String bookAuthor;
public int bookPrice;
public Book(String bookName, String bookAuthor, int bookPrice) {
this.bookName = bookName;
this.bookAuthor = bookAuthor;
this.bookPrice = bookPrice;
}
}
class LibraryManageSystem {
private LinkedList list = new LinkedList<>();
public void addBook(String bookName, String bookAuthor, int bookPrice) {
list.add(new Book(bookName, bookAuthor, bookPrice));
}
public void removeBook(String authorName) {
list.removeIf(book -> bookAuthor.equals(authorName));
list.removeIf(book -> bookAuthor == authorName);
}
public LinkedList<Book> queryBook(String authorName) {
LinkedList<Book> result = new LinkedList<>();
list.forEach(book -> {
if (book.bookAuthor.equals(authorName)) {
result.add(book);
}
});
result.sort((b1, b2) -> b1.price - b2.price);
return result;
}
public void save(String path) throws Exception {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(path));
oos.writeObject(list);
oos.flush();
oos.close();
}
public void load(String path) throws Exception {
ObjectInputStream ois = new ObjectInputStream(new FileInputStrema(path));
Object obj = ois.readObject();
LinkedList result = null;
if (obj instanceof LinkedList) {
result = (LinkedList<Book>)obj;
}
this.list.addAll(result);
ois.close();
}
}