scala 基础练习

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


  }
}

猜你喜欢

转载自blog.csdn.net/zhc794429974/article/details/81809343