JAVA定义一个集合类,用于保存图书信息,并实现如下方法: addBook,向集合类中添加书籍信息;sortByID,根据书的编号进行排序,可以根据参数指定升序或降序排序方式。 printBooksInfo,打印输出所有书籍的信息;
时间: 2024-05-13 17:20:16 浏览: 112
我可以帮你回答这个问题。
首先,你可以使用 Java 中的 ArrayList 类来创建一个保存书籍信息的集合。在 ArrayList 中,每个元素都是一个 Book 对象,Book 对象包含书籍的编号、名称、作者等信息。
接下来,你可以实现 addBook 方法来添加书籍信息。addBook 方法接收一个 Book 对象作为参数,然后使用 ArrayList 的 add 方法将其添加到集合中。
排序可以使用 Collections 类中的 sort 方法来实现。你可以实现 sortByID 方法,该方法接收一个 boolean 类型的参数,true 表示升序排序,false 表示降序排序。在 sortByID 方法中,你可以先实现一个 Comparator 接口,按照书籍编号进行比较,并根据传入的参数决定升序或降序排序方式。然后,使用 Collections 的 sort 方法进行排序。
最后,你可以实现 printBooksInfo 方法来输出所有书籍的信息。使用 for 循环遍历 ArrayList 中的每个 Book 对象,并打印输出其信息即可。
下面是代码示例:
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Book {
private int id;
private String name;
private String author;
public Book(int id, String name, String author) {
this.id = id;
this.name = name;
this.author = author;
}
// getters and setters
public static void main(String[] args) {
ArrayList<Book> books = new ArrayList<Book>();
books.add(new Book(2, "Java Basics", "John Doe"));
books.add(new Book(1, "Python for Beginners", "Jane Smith"));
books.add(new Book(3, "C++ Programming", "Bob Johnson"));
sortByID(books, true); // sort by ID in ascending order
printBooksInfo(books);
}
public static void addBook(ArrayList<Book> books, Book book) {
books.add(book);
}
public static void sortByID(ArrayList<Book> books, boolean ascending) {
Comparator<Book> comparator = new Comparator<Book>() {
@Override
public int compare(Book b1, Book b2) {
if (ascending) {
return b1.getId() - b2.getId();
} else {
return b2.getId() - b1.getId();
}
}
};
Collections.sort(books, comparator);
}
public static void printBooksInfo(ArrayList<Book> books) {
for (Book book : books) {
System.out.println("Book ID: " + book.getId());
System.out.println("Book Name: " + book.getName());
System.out.println("Book Author: " + book.getAuthor());
System.out.println("------------------------");
}
}
}
```
阅读全文