Scala练习
object Demo01 {
def main(args: Array[String]): Unit = {
//创建一个List
val lst0 = List(1,7,9,8,0,3,5,4,6,2)
val arr = lst0.toArray
//将lst0中每个元素乘以10后生成一个新的集合
val arr1 = for (e <- arr) yield e*10
val lst1 = arr1.toList
//将lst0中的偶数取出来生成一个新的集合
val arr2 = arr.filter(_ % 2 == 0)
val lst2 = arr2.toList
//将lst0排序后生成一个新的集合
val lst3 = lst0.sortWith( (x,y) => x < y)
//反转顺序
val lst4 = lst0.reverse
//将lst0中的元素4个一组,类型为Iterator[List[Int]]
val lst5 = lst0.grouped(4)
//将Iterator转换成List
val lst6 = lst5.toList
//将多个list压扁成一个List
val lst7 = lst6.flatten
//先按空格切分,在压平
val lines = List("hello tom hello jerry", "hello jerry", "hello kitty")
val lst8 = lines.map( (line:String) => line.split(" ")).flatten
//并行计算求和
val par = lst0.par
val parSum = par.sum
val parSum2 = par.reduce( _ + _)
//化简:reduce
//将非特定顺序的二元操作应用到所有元素
val sum2 = lst0.reduce( (x,y) => x + y)
//折叠:有初始值(无特定顺序)
val lst9 = lst0.fold(0)((x,y) => x + y)
//折叠:有初始值(有特定顺序)
val lst10 = lst0.foldLeft(0)((x,y) => x + y)
//聚合
// val arr = List(List(1, 2, 3), List(3, 4, 5), List(2), List(0))
val l1 = List(3,5,6,4,7)
val l2 = List(1,2,3,4,5)
val set1 = l1.toSet
val set2 = l2.toSet
//求并集
println(set1.union(set2))
//求交集
println(set1.intersect(set2))
//求差集
println(set1.diff(set2))
}
}