1) map()函数
可以对整个集合进行操作,比如
创建一个Seq列表,然后用map对集合*2
val salaries = Seq(2,3,4,5)val newsalaries = salaries.map(_*2)
2) flatMap函数
faltMap函数是map一种扩展,faltMap中传入一个函数,该函数对每个输入都会返回一个集合,然后,会把多个集合“拍扁”成一个集合
val words = Seq("H e l l o","w o r l d")val resule = words.faltMap(_.split(" ")println(result)结果: List(H, e, l, l, o, w, o, r, l, d, -, w, -e, w)
3) reduce函数
redce 函数可以对集合当中的元素进行归约操作,下划线是占位符,两个下划线表示归约的规则是使用前后两个元素,中间加号,用来表示对元素的操作
不指定reduce是left还是right,默认情况是reduceLeft
//reduce函数val list = List(1,2,3,4,5)val result = list.reduce(_+_)println("result:" + result)
4)foreach函数
foreach函数与map相似,都是遍历集合对象,并对每一项执行指定的方法。区别在于foreach无返回值,map返回一个List
val list = List(1,2,3)list.foreach(println)
5) groupby 函数
groupby 函数将列表进行分组,分组依据是应该groupby函数中的函数的返回值,可以看到结果是返回一个map集合
val list = List("a","b","c","d")val result = list.groupBy(x=>{x match {case "a" => 1case "b" => 1case _ => 2}})println(result)结果:HashMap(1 -> List(a, b), 2 -> List(c, d))
val seq = Seq((100,"chun1"),(99,"chun2"),(60,"chun3"))
val result1 = seq.groupBy(_._2)println(result1)```结果:HashMap(chun3 -> List((60,chun3)), chun2 -> List((99,chun2)), chun1 -> List((100,chun1)))
6) 元祖
//元祖val t = (31,"chun1",18)println("id:"+t._1)println("name:"+t._2)println("age:"+t._3)结果:id:31name:chun1age:18
7)filter函数
筛选出列表中符合条件的元素、
//filter函数val list = List(1,2,3,4,5)val newlist = list.filter(_>3)println(newlist)结果:List(4, 5)
8)count函数
count函数计算列表中满足条件的元素个数
//count函数val list = List(1,2,3,4,5,6)val newlist = list.count(_>3)println(newlist)结果:2
9)sortBy函数
soryBy函数用于通过他的类型对一个属性或者多个属性进行排序
//soryBy函数val list = List(2,3,4,1,5,6)val newlist = list.sortBy(x => x)println(newlist)结果:List(1, 2, 3, 4, 5, 6)
10) diff函数(差集)(在set里可以用–)
diff函数保存列表中那些不在另一个列表中的元素,即从集合中减去另一个集合的元素后得到一个新的集合
//diff函数val list = List(1,2,3,4,5,6)val list1 = List(1,2,3,4)val newlist = list.diff(list1)println(newlist)结果:List(5, 6)
也可以这样写list diff list1
11)union函数或者直接用++,连接两个集合
//union函数或者++val list1 = List(1,2,3,4,5)val list2 = List(6)val newlist = list1.union(list2)val newlist2 = list1++list2println(newlist)println(newlist2)
12)Intersect函数(在set里可以用&)
//intersect函数val set1 = Set(1,2,3,4)val set2 = Set(1,2,5,6)val newset = set2 & set1val newset1 = set1 intersect set2println(newset1)println(newset)结果:Set(1, 2)Set(1, 2)
13)take函数
提取列表前n个元素
//take函数val list = List(1,2,3,4,6,3,5)val takelist = list take 2val takelist2 = list.take(5)println(takelist)println(takelist2)结果:List(1, 2)List(1, 2, 3, 4, 6)
14)drop函数(丢弃前n个元素)
//drop函数val list = List(1,2,3,4,5,6)var droplist = list drop 2println(droplist)结果:List(3, 4, 5, 6)
15) partition函数(把列表分成两部分,第一部分为满足条件的,第二部分为不满足条件的)(结果为元祖)
//partition函数val list = List(1,2,3,4,5,6,7,8)val lists = list.partition(_%2==0)println(lists)println(lists._2)结果:(List(2, 4, 6, 8),List(1, 3, 5, 7))List(1, 3, 5, 7)