scala中的高阶函数
高阶函数
val list =List(1,2,3,4,5,6,7,8)val newList = list.map((x:Int) => 2*x) //map表示映射list中的每一个元素的值为原来的2倍//newList中的值为2,4,6,8,10,12,14,16也可直接写成- val newList = list.map(x => 2*x)
- 也可等价写成
- val newList = list.map(2*_)
map函数相当于foreach
集合Set
val s = Set(1,2,1)//则s中的结构为s = Set(1,2)
集合元组
val hostPort = ("localhost","8080")//则hostPort中的结构为hostPort: (String,String) = (localhost,8080)
访问元组中的元素
hostPort._1//输出结果为localhost
//通过下面的方式也可以产生一个元组"a" -> "b"//元组的结构为(String,String) = (a , b)//产生一个MapMap("a" -> "b")//该map的结构为Map(String,String) = Map(a -> b)
filter的使用
val list = List(1,2,3,4,5,6)list.filter(x => x%2==0) //择取偶数//结果为List(2,4,6)
zip的使用
val a = List(1,2,3)val b = List(4,5,6)a.zip(b) //使a中的元素与b中对应位置的元素配成对,也可写成 a zip b//结果为List[(Int,Int)] = List((1,4),(2,5),(3,6))
partition的使用,将一个集合分割成子集合
//把奇数和偶数分隔开val a = List(1,2,3,4,5,6)a.partition(_%2==0)//结果为(List[Int],List[Int])= (List(2,4,6),List(1,3,5))
flatten的使用,扁平化
val a = List(List("a","b"),List("c","d")).flatten//结果为List[String] = List(a,b,c,d)
flatMap = flat + map(扁平化+ 遍历)
var a = List(list(1,2),List(3,4))a.flatMap(x => x.map(_ * 2)) //先将a扁平化,然后遍历(map),即将扁平后的每一个元素放入x中,然后乘以2//结果为Lsit[Int] = List(2,4,6,8)
浙公网安备 33010602011771号