这个应该相当简单我想,我只是不记得当使用对象的get方法时,如何从包中拉出最高的双倍并将它放在println中。
到目前为止,我只是以百分比打印每个对象。但是对于我的生活,我只是记不起来,我知道我以前做过这件事。
public void displayBookWithBiggestPercentageMarkup(){
Collection<Book> books = getCollectionOfItems();
Iterator<Book> it = books.iterator();
while(it.hasNext()){
Book b = it.next();
double percent = b.getSuggestedRetailPriceDollars() / b.getManufacturingPriceDollars() * 100.0;
System.out.println("Highest markup is " + percent + " " + b.getTitle() + " " + b.getAuthor().getName().getLastName());
}
}
我很确定我需要另一个局部变量,但我似乎无法做任何事情,只是让它等于其他百分比。我现在已经删除了另一个变量,因为我试着考虑它。
答案 0 :(得分:5)
我不会因为它的功课而做了很多细节(顺便说一下,这是好事,但是这里有关键的想法:跟踪当你的循环运行时,你目前看到的最大百分比。这就是你想要的其他变量。
答案 1 :(得分:0)
发布你迄今为止尝试过的内容。你走在正确的轨道上。当您浏览书籍时,保持变量不断更新,目前为止看到的百分比最高,相关书籍的另一个变量。迭代完成后,在循环外的末尾输出变量。另外,不要忘记检查空书清单的边缘情况!这样的事情可以解决问题:
public void displayBookWithBiggestPercentageMarkup(){
Collection<Book> books = getCollectionOfItems();
if (books.size() == 0) {
return;
}
Iterator<Book> it = books.iterator();
double highestPercent = 0;
Book highestPercentBook = null;
while(it.hasNext()){
Book b = it.next();
double percent = b.getSuggestedRetailPriceDollars() / b.getManufacturingPriceDollars() * 100.0;
if (percent > highestPercent) {
highestPercent = percent;
highestPercentBook = b;
}
}
System.out.println("Highest markup is " + highestPercent
+ " " + highestPercentBook.getTitle()
+ " " + highestPercentBook.getAuthor().getName().getLastName());
}