Scala 基础知识点巩固2

1、集合中常用的函数

sum / max / min

# 定义一个List[Int]
val list1 = List(1,3,4,6,8,9)
# 取集合中所有元素的和
list1.sum
# 取集合中所有元素的最大值
list1.max
# 取集合中所有元素的最小值
list1.min
2、集合中的其它函数
  • 条件过滤函数 filter(过滤条件表达式)

# 如取出list1中的偶数
list1.filter(e => e%2 == 0)
  • 对嵌套集合压平操作 flatten

# 嵌套集合
val list2 = List(1,2,3)
val list3 = List(4,5,6)
val list4 = List(list2,list3)
# flatten操作
list4.flatten   //压平操作是将嵌套在集合内层中的集合的元素放到外层生成新的集合
  • map 对集合中的元素做映射

# 对list1中所有元素乘以10的操作就用map函数
list1.map( e => e*10 )
  • flatMap() 相当于是对集合中的元素行进行映射处理,然后再做压平处理

# 例如将集合中的小写字母转换成相对应的大写字母,并保留小写字母
val ls1 = List('a','b','c')
# flatMap操作
val ls2 = ls1.flatMap(ch => List(ch,ch.toUpper)) // toUpper 将小字符转换成大写字符
  • 对集合中所有元素作条件判断 forall(条件判断)

# 判断list1中的所有元素是否都大于0,条件成立返回true,否则返回false
list1.forall(e => e > 0)
  • 对集合中所有元素进行操作 foreach(操作)

# 将list1集合中的每一个元素换行打印出来
list1.foreach(println)
  • reduceLeft / reduceRight

# 从集合左边开始操作 
list1.reduceLeft(_+_)
# 从集合右边开始操作
list1.reduceRight(_+_)
  • foldLeft / foldRight 带初始值的操作

# foldLeft 
list1.foldLeft(10)(_+_)
# foldRight
list1.foldRight(100)(_-_)
05-11 14:47