我一直在寻找一种方法来使用计数来遍历我的列表,但我找不到方法,我试图使用var count = 0
无效。
这是我的代码,有人可以告诉我迭代这个的正确方法,而不仅仅是硬编码0.谢谢。
if(order != null) {
for(i <- order.get(0).getItems) {
i.getProduct.getName
i.getProduct.getDescription
"%.2f".format(i.getPrice))
i.getQuantity()
"%.2f".format(i.getItemTotal))
}
}
答案 0 :(得分:2)
您可以导入 import scala.collection.JavaConverters ._ 以将java集合转换为scala集合。这将处理所有事情,您可以使用scala函数。因此,无需计算和迭代。
import scala.collection.JavaConverters._
@for(order <- orders) {
<!-- Start of For loop - For each p in products add a row -->
@for(i <- order.getItems) {
<tr>
<td>@i.getProduct.getName</td>
<td>@i.getProduct.getDescription</td>
<td>€ @("%.2f".format(i.getPrice))</td>
<td>@i.getQuantity()</td>
<td>€ @("%.2f".format(i.getItemTotal))</td>
</tr>
}<!-- End of For loop -->
}
根据Vidya的建议更新了答案
答案 1 :(得分:2)
由于您显然使用Java ArrayList
,请先执行此操作:
import scala.collection.JavaConverters._
这使您可以使用asScala
将Java集合转换为更易于使用的Scala集合。
正如我在评论中提到的,我不知道你想要总结的是什么;好像你在打印东西。但是,如果你想要计算所有订单中的所有商品,你可以这样做:
val totalItems = orders.asScala.foldLeft(0)(_ + _.getItems.size)
还有其他几种方法可以生成相同的总数。