object Exercise {
def main(args: Array[String]): Unit = {
//创建list
val list0 = List(3, 5, 4, 0, 1, 2, 6, 9, 7, 8)
//list元素乘以2
val list1 = list0.map(_ * 2)
//将list 偶数取出生成list
val list2 = list0.filter(_ % 2 == 0)
//list 排序
val list3 = list0.sorted
//反转排序
val list4 = list3.reverse
//将list0中元素4个一组,类型为Iterator[List[Int]]
val it = list0.grouped(4)
//Iterator 转换成List
val list5 = it.toList
//将多个list压扁成一个list
val list6 = list5.flatten
val lines = List("hello java", "hello scala", "hello python")
//先按空格切分,再压平
val words = lines.map(_.split(" "))
val flatten_word = words.flatten
val res = lines.flatMap(_.split(" "))
//并行计算求和 (par)
val arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
//val res1 = arr.sum
//和线程有关,每个线程计算一部分,(1+2+3+4)+(5+6+7)+(8+9+10)
val res2 = arr.par.sum
//按特定的顺序,进行聚合(reduce)
//val res3 = arr.reduce(_ + _)
val res3 = arr.reduceLeft(_ + _)
//折叠:有初始值(无特定顺序)
val res4 = arr.par.fold(10)(_ + _)
//折叠:有初始值(有特定顺序)
val res5 = arr.par.foldLeft(10)(_ + _)
val res6 = arr.par.foldRight(10)(_ + _)
//聚合
val list7 = List(List(1, 2, 3), List(3, 4, 5), List(2))
// val res7 = list7.flatten.reduce(_+_)
val res7 = list7.aggregate(0)(_+_.sum, _+_)
val l1 = List(5, 6, 7, 4)
val l2 = List(1, 2, 3, 4)
//求并集
val res8 = l1 union l2
//求交集
val res9 = l1 intersect l2
//求差集
val res10 = l1 diff l2
}
}