我是一名 Kotlin 的新手,正在努力学习该语言。
我有一个函数,返回 DayofWeek 作为键和一个 Int 值作为值。
我遇到的问题是,我需要获取一个对象列表,其中每个对象内又包含另一个对象列表,该列表具有一个我需要保存并在每次看到相同值时自增的 Int 值。
以下是我的函数 -
class OrdersAnalyzer {
data class Order(val orderId: Int, val creationDate: LocalDateTime, val orderLines: List<OrderLine>)
data class OrderLine(val productId: Int, val name: String, val quantity: Int, val unitPrice: BigDecimal)
fun totalDailySales(orders: List<Order>) : Map<DayOfWeek, Int> {
val map: MutableMap<DayOfWeek, Int>? = mutableMapOf(
Pair(DayOfWeek.SUNDAY, 0),
Pair(DayOfWeek.MONDAY, 0),
Pair(DayOfWeek.TUESDAY, 0),
Pair(DayOfWeek.WEDNESDAY, 0),
Pair(DayOfWeek.THURSDAY, 0),
Pair(DayOfWeek.FRIDAY, 0),
Pair(DayOfWeek.SATURDAY, 0)
)
for (order in orders) {
val dayOfWeek = order.creationDate.dayOfWeek
var quantity = 0
map?.put(dayOfWeek, quantity)
}
return map!!
}
}
现在我面临的两个问题是 -
1)当当前DayOfWeek时,如何递增每对的值? 我不想替换它,我想将其添加到最后一个值。
2)返回Map时,我不想返回具有0值的DayOfWeeks。我该怎么做?