Description
Implement
Shop.getCustomerWithMaximumNumberOfOrders()
andCustomer.getMostExpensiveOrderedProduct()
using max, min, maxBy, or minBy.
max, min, maxBy, もしくは minBy を使用して、
Shop.getCustomerWithMaximumNumberOfOrders()
およびCustomer.getMostExpensiveOrderedProduct()
を実装してください。
listOf(1, 42, 4).max() == 42
listOf("a", "ab").minBy { it.length } == "a"
Code
// Return a customer whose order count is the highest among all customers
fun Shop.getCustomerWithMaximumNumberOfOrders(): Customer? = customers.maxBy { it.orders.size }
// Return the most expensive product which has been ordered
fun Customer.getMostExpensiveOrderedProduct(): Product? = orders.flatMap { it.products }.maxBy { it.price }
Memo
- 以下の関数は、オブジェクトが
Comparable
インタフェースを実装している必要がある max
... 最大要素min
... 最小要素maxBy
... ラムダ内で指定した値での最大要素minBy
... ラムダ内で指定した値での最小要素