java图书馆中的每本书都有一个ID号和书名,每本书的ID号是唯一的。data.txt中为各读者的借阅记录,每条记录包括读者的姓名和借阅的图书ID。编写一个Java程序,完成以下功能: 1、定义借阅记录类BorrowRecord,它包含
时间: 2024-06-13 12:07:49 浏览: 110
定义借阅记录类BorrowRecord,它包含两个属性:readerName 和 bookId,并实现 Comparable 接口用于排序。可以按照以下方式实现:
```java
public class BorrowRecord implements Comparable<BorrowRecord> {
private String readerName;
private int bookId;
public BorrowRecord(String readerName, int bookId) {
this.readerName = readerName;
this.bookId = bookId;
}
public String getReaderName() {
return readerName;
}
public int getBookId() {
return bookId;
}
@Override
public int compareTo(BorrowRecord o) {
return Integer.compare(this.bookId, o.bookId);
}
}
```
其中,BorrowRecord类包含两个属性:readerName和bookId,分别表示读者姓名和借阅的图书ID。实现了Comparable接口,并重写了compareTo方法,用于按照bookId属性进行排序。
接下来,可以读取data.txt文件中的借阅记录,并将其存储在一个List<BorrowRecord>中。可以按照以下方式实现:
```java
List<BorrowRecord> borrowRecords = new ArrayList<>();
try (Scanner scanner = new Scanner(new File("data.txt"))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] parts = line.split(",");
String readerName = parts[0];
int bookId = Integer.parseInt(parts[1]);
BorrowRecord borrowRecord = new BorrowRecord(readerName, bookId);
borrowRecords.add(borrowRecord);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
```
其中,使用Scanner读取data.txt文件中的每一行记录,并使用逗号分隔符将其分割为readerName和bookId两个部分。然后,创建一个BorrowRecord对象,并将其添加到borrowRecords列表中。
最后,可以按照bookId属性对borrowRecords列表进行排序,并输出每个借阅记录的readerName和bookId属性。可以按照以下方式实现:
```java
Collections.sort(borrowRecords);
for (BorrowRecord borrowRecord : borrowRecords) {
System.out.println(borrowRecord.getReaderName() + " borrowed book " + borrowRecord.getBookId());
}
```
这里使用Collections.sort方法对borrowRecords列表进行排序,排序后的列表将按照bookId属性升序排列。然后,使用for循环遍历排序后的列表,并输出每个借阅记录的readerName和bookId属性。
阅读全文