用scala函数取Array列表元组中某元素的最大值、最小值和平均值
val arr=Array((1,“a”,123),(2,“b”,12),(3,“c”,-50))//id,name,age。需求:用函数取age最大值最小值和平均值。
scala> val arr=Array((1,“a”,123),(2,“b”,12),(3,“c”,-50))
scala> arr
res02: Array[(Int, String, Int)] = Array((1,a,123), (2,b,12), (3,c,-50))
方法一:(取单个值)
scala> arr.map(a=>a._3).max
res03: Int = 123
scala> arr.map(a=>a._3).min
res04: Int = -50
scala> arr.map(a=>a._3).sum/arr.size
res05: Int = 28
方法二:(取单个值所在的元组)
min(),max()默认取数组每个元组的第一个元素的最值,不适合题目需求,故需要用到minBy(),maxBy()
scala> arr.minBy(a=>a._3)
res50: (Int, String, Int) = (3,c,-50)
scala> arr.maxBy(a=>a._3)
res51: (Int, String, Int) = (1,a,123)