帮我用Java写一个图书统计功能(借阅人次,个人借阅统计,最受欢迎的书,借阅最少的书等)
时间: 2024-03-08 17:51:14 浏览: 78
Java图书借阅管理系统源码(前台+后台)
好的,下面是一个简单的图书统计功能的Java代码示例,包括借阅人次、个人借阅统计、最受欢迎的书和借阅最少的书:
```java
import java.util.*;
public class Library {
private Map<String, Integer> bookCounts; // 记录每本书的借阅次数
private Map<String, Set<String>> borrowedBooks; // 记录每个借阅者所借的书
public Library() {
bookCounts = new HashMap<>();
borrowedBooks = new HashMap<>();
}
// 记录一次借阅
public void borrowBook(String bookName, String borrowerName) {
// 记录借阅次数
int count = bookCounts.getOrDefault(bookName, 0);
bookCounts.put(bookName, count + 1);
// 记录借阅者所借书籍
Set<String> borrowed = borrowedBooks.getOrDefault(borrowerName, new HashSet<>());
borrowed.add(bookName);
borrowedBooks.put(borrowerName, borrowed);
}
// 获取图书借阅次数
public int getBookCount(String bookName) {
return bookCounts.getOrDefault(bookName, 0);
}
// 获取借阅者借阅的所有书籍
public Set<String> getBorrowedBooks(String borrowerName) {
return borrowedBooks.getOrDefault(borrowerName, new HashSet<>());
}
// 获取最受欢迎的书
public String getMostPopularBook() {
String mostPopularBook = null;
int maxCount = 0;
for (Map.Entry<String, Integer> entry : bookCounts.entrySet()) {
if (entry.getValue() > maxCount) {
mostPopularBook = entry.getKey();
maxCount = entry.getValue();
}
}
return mostPopularBook;
}
// 获取借阅最少的书
public String getLeastBorrowedBook() {
String leastBorrowedBook = null;
int minCount = Integer.MAX_VALUE;
for (Map.Entry<String, Integer> entry : bookCounts.entrySet()) {
if (entry.getValue() < minCount) {
leastBorrowedBook = entry.getKey();
minCount = entry.getValue();
}
}
return leastBorrowedBook;
}
// 获取某个借阅者借阅的某本书的次数
public int getBorrowCount(String bookName, String borrowerName) {
Set<String> borrowed = borrowedBooks.getOrDefault(borrowerName, new HashSet<>());
if (borrowed.contains(bookName)) {
return bookCounts.getOrDefault(bookName, 0);
} else {
return 0;
}
}
}
```
这段代码中,`Library` 类表示图书馆,包含了记录每本书的借阅次数和每个借阅者所借的书籍的两个 `Map`,以及四个方法:
- `borrowBook` 方法用于记录一次借阅,它会更新 `bookCounts` 和 `borrowedBooks` 两个 `Map`。
- `getBookCount` 方法用于获取某本书的借阅次数。
- `getBorrowedBooks` 方法用于获取某个借阅者借阅的所有书籍。
- `getMostPopularBook` 方法用于获取最受欢迎的书,它会遍历 `bookCounts`,找到借阅次数最多的那本书。
- `getLeastBorrowedBook` 方法用于获取借阅最少的书,它会遍历 `bookCounts`,找到借阅次数最少的那本书。
- `getBorrowCount` 方法用于获取某个借阅者借阅某本书的次数,如果该借阅者没有借阅过这本书,返回 0。
你可以根据需要自行调用这些方法,完成图书统计功能。
阅读全文