添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

用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)

注:val map = Map((“b”,2),(“a”,1),(“d”,4)),这里调用的方法是使用map调用的 1. 最大值 最小值 方法:max、min、maxBy、minBy def minBy[B](f: A => B)(implicit cmp: Ordering[B]): A = { if (isEmpty) throw new UnsupportedOperatio...
scala Version := "2.11.12" libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0" scala 的版本如果不是2.11.12,spark的版本不是2.1.0.否则很可能就会造成不对应的结果 下面是用 scala 求最大 最小值 的程序 import org.apache.s
scala 求次大值和 最大值 ! def main(args: Array [String]): Unit = { val arr = Array (3, -6, 2, 0, 9, 5, 8, 1,213,45,32,3,2,3) val result = qcMax(arr) println(s"次大值:${result._1}, 最大值 :${result._2}") //思路:先给ci和max赋予数组的 最小值 ,然后让数组的每一个值先和ci比较,如
集合之间合并类 ++ ++:/union +=增加一个string类型的集合,常用于map/ 元组 / Array Buffer[T] var m=Map(“a”->1);m+=(“j”->0) 集合增加 元素 +: :+ padTo 后补齐 集合去除 元素 drop 去除前n个 dropRight dropWhile patch update/updated 集合 值(单个、头尾、部分) apply head/headOption 返回集合第一个 元素 tail
本文 scala 使用的版本是2.11.7第一章 基础1.1 基础常量和变量以val定义的值是一个常量,即无法改变它的内容: scala > val counter: Int = 0 counter: Int = 0以var定义的值是变量,可以改变它的内容: scala > var v = 0 v: Int = 0 scala > v = 10 v: Int = 10常用类型7种数值类型:Byte、Char、Sho
1. 类和对象 Scala 是一种 函数 式的面向对象语言, 它也是支持面向对象编程思想的,也有类和对象的概念。我们依然可以基于 Scala 语言来开发面向对象的应用程序。 1.1 相关概念 什么是面向对象? 面向对象是一种编程思想, 它是基于面向过程的, 强调的是以对象为基础完成各种操作. 面向对象的三大思想特点是什么? 1. 更符合人们的思考习惯. 2. 把复
val a = List(1.0,2.0,3.0,4.0,5.0) val b = a.map(x=>(x,1.0)).reduce((x,y)=>(x._1+y._1,x._2+y._2)) val avg = b._1/b._2 下图是运行结果 注意:val b = a.map(x=>(x,1.0)).reduce((x,y)=>(x._1+x._2,y._1+y._2))这样求值
++ count hasDefiniteSize maxBy sameElements toBuffer ++: deep head min scan toIndexedSeq +: diff headOption
def findMinMax(list: List[String]): (String, String) = { val max = list.max val min = list.min (max, min) val myList = List("apple", "banana", "cherry", "date", "eggplant") val (max, min) = findMinMax(myList) println(s"Max: $max, Min: $min") // 输出:Max: eggplant, Min: apple 在这个示例 ,我们定义了一个名为`findMinMax`的方法,它接受一个类型为`List[String]`的参数`list`,并返回一个类型为`(String, String)`的 元组 ,其 第一个 元素 是该 列表 最大值 ,第二个 元素 最小值 。 我们在主 函数 创建了一个字符串 列表 `myList`,并将其传递给`findMinMax`方法。我们使用`val (max, min) = findMinMax(myList)`行来将 元组 的第一个和第二个 元素 分别赋值给`max`和`min`变量。最后,我们使用`println` 函数 输出结果,显示 列表 的最大和最小字符串。