java - java计算arraylist平均值并一直为0
问题描述
我正在编写一个库程序。我有一门课代表对一本书或一篇论文的评论。复习课是这样的:
private String review; //a review of the book or paper
private int reviewRate; //the rate of the review
private String firstName; //the first name of the review writer
private String lastName; //the last name of the review writer
private String itemName; //the name of the book or paper
我还有一类图书馆项目,代表一本书或一篇论文,我有一种方法来计算项目评论率的平均值和评论的数组列表。
protected ArrayList<Review> itemReviews; //array list that contains all of the reviews of the item
.
.
.
//method to calculate the average of the item reviews
public int calculateReviewAverage ()
{
int average = 0; //initialize the average of the reviews rate
int sum =0; //initialize the sum of the reviews rate
if(itemReviews.isEmpty()) //if there are no reviews
{
return 0;
}
else //if there are reviews
{
for(int i=0; i<itemReviews.size(); i++) //loop through the reviews array
{
System.out.println(itemReviews.get(i).getReviewRate());
sum += itemReviews.get(i).getReviewRate(); //sum all of the reviews rates
}
average = sum / itemReviews.size(); //calculate the average rate
return average;
}
}
主要是我添加了一些评论,然后调用 calculateReviewAverage 方法,我总是得到 0。这就是我添加评论的方式:
if (command.equals("makeBookReview")) {
String readerFirstName = input.next();
String readerLastName = input.next();
String bookName = input.next();
String reviewSentence = input.next();
String rateStr = input.next();
int rate = Integer.parseInt(rateStr);
Reader reader = new Reader (readerFirstName, readerLastName);
Book book = new Book(bookName); //just to find the real book
//create review
Review review = new Review(readerFirstName, readerLastName, bookName, reviewSentence, rate);
if (LibrarySys.makeBookReview(book, review)) { // if adding successfully, then true returned,
// the following message is written to the output file
MyFileLogWriter.writeToFileInSeparateLine("Successfully adding book review, reader: " + reader + " to item: " + book);
} else {
MyFileLogWriter.writeToFileInSeparateLine("Failed to add book review");
}
}
之所以添加评论,是因为我打印了 itemReviews 数组列表并得到了这个:
[Review [review=Pipo, reviewRate=10, firstName=Inzagi, lastName=SetTheory, itemName=great_book_to_learn_coking]]
[Review [review=Massi, reviewRate=7, firstName=Rodregez, lastName=SetTheory, itemName=great_book_to_learn_coking]]
[Review [review=Leo, reviewRate=8, firstName=Messi, lastName=ErdosNumber, itemName=great_book_to_learn_coking]]
[Review [review=Leo, reviewRate=8, firstName=Messi, lastName=ErdosNumber, itemName=great_book_to_learn_coking]]
[Review [review=Leo, reviewRate=8, firstName=Messi, lastName=integral, itemName=great_book_to_learn_coking]]
[Review [review=Leo, reviewRate=7, firstName=Messi, lastName=DataMinig, itemName=great_book_to_learn_coking]]
[Review [review=Pipo, reviewRate=4, firstName=Inzagi, lastName=integral, itemName=great_book_to_learn_coking]]
我需要在代码中更改什么?
解决方案
推荐阅读
- css - 如何使用样式组件在伪元素后旋转图像
- facebook - 我的 Facebook 应用程序无法接收网页 webhook
- python - 基于 df2 中的 .eq() 求和 df1 中的值
- sql-server - 使用实体框架时保护生产数据库的最佳实践
- javascript - 如何计算 Node 应用所需的 RAM 和 CPU 数量?
- python - 用于 ive 流的套接字和 Cv2。Python [解释]
- c++ - 如何使用超时创建 boost::async_read 和 async_write
- nestjs - 使用 Nest.js 从 DI 获取应用程序 url
- javascript - 单击一个 div 以激活其他 div
- java - 使用 java 桌面使用 firebase 进行身份验证