用java实现现有书籍若干本,信息如下所示,请定义一个Book类,有属性成员(author,name,price),请定义成员的方法和构造方法等方法,请编程实现使得书籍按价格升序输 出。请定义一个BookIO类,实现将将排序结果写入到文件中(E:\temp\book.txt)。 (需要通过程序实现排序,不能只使用人工排序输出哦)
时间: 2024-02-21 16:59:08 浏览: 26
好的,根据您的要求,我来为您解答这个问题。
首先,我们需要定义一个Book类,包含三个属性成员:作者(author)、书名(name)和价格(price)。同时需要定义成员方法和构造方法。下面是代码实现:
```java
public class Book {
private String author;
private String name;
private double price;
public Book(String author, String name, double price) {
this.author = author;
this.name = name;
this.price = price;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
```
接下来,我们需要定义一个BookIO类,用于将排序结果写入到文件中。下面是代码实现:
```java
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.List;
public class BookIO {
public static void writeToFile(List<Book> bookList) {
// 按价格升序排序
bookList.sort(Comparator.comparing(Book::getPrice));
// 写入文件
File file = new File("E:\\temp\\book.txt");
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
for (Book book : bookList) {
writer.write(book.getAuthor() + "," + book.getName() + "," + book.getPrice());
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
注意,我们使用了Java 8中的Lambda表达式,对书籍列表进行了按价格升序排序。
最后,我们可以在主程序中创建一些书籍对象,并调用BookIO类的writeToFile方法将排序结果写入到文件中。下面是示例代码:
```java
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
// 创建一些书籍对象
Book book1 = new Book("Tom", "Java编程思想", 88.8);
Book book2 = new Book("Jerry", "数据结构与算法", 66.6);
Book book3 = new Book("Lucy", "Python基础教程", 99.9);
// 将书籍对象添加到列表中
List<Book> bookList = new ArrayList<>();
bookList.add(book1);
bookList.add(book2);
bookList.add(book3);
// 将排序结果写入到文件中
BookIO.writeToFile(bookList);
}
}
```
当程序执行完毕后,您可以在E:\temp\book.txt文件中看到书籍按价格升序排列的结果。