函數(shù)式編程練習(xí)之常用方法

package day02

/**
  * 函數(shù)編程練習(xí)之常用方法
  * reduce
  * fold
  * aggregate
  * 交并差集
  */
object Exercise {
  def main(args: Array[String]): Unit = {

    // 創(chuàng)建一個(gè)List
    val list0 = List(5,7,1,9,3,8,6,2,0,4)

    //將lst0中每個(gè)元素乘以2后生成一個(gè)新的集合
    val list1 = list0.map(_ * 2)

    //將lst0中的偶數(shù)取出來生成一個(gè)新的集合
    val list2 = list0.filter(_ % 2 == 0)

    //將lst0排序后生成一個(gè)新的集合
    val list3 = list0.sorted

    //反轉(zhuǎn)排序順序
    val list4 = list3.reverse

    //將lst0中的元素4個(gè)一組,類型為Iterator[List[Int]]
    val it = list0.grouped(4)

    //將Iterator轉(zhuǎn)換成list
    val list5 = it.toList

    //將多個(gè)list壓扁成一個(gè)list
    val list6 = list5.flatten

    val lines = List("hello java hello scala","hello scala","hello python")
    //先按空格切分,再壓平
//    val words = lines.map(_.split(" "))
//    val flatWords = words.flatten
//    val res = lines.flatMap(_.split(" "))

    //并行計(jì)算求和
    val arr = Array(1,2,3,4,5,6,7,8,9,10)
//和線程有關(guān),每個(gè)線程計(jì)算一部分,( (1+2+3+4) + (5+6+7+8) +(9+10) )
//    val res = arr.sum
//    val res = arr.par.sum

    //按照特定的順序進(jìn)行聚合
    // (((1+2)+3)+4)+5....
//    val res = arr.reduce(_+_)
//    val res = arr.reduceLeft(_+_)
      // 實(shí)現(xiàn)并行方式進(jìn)行聚合
//    val res = arr.par.reduce(_+_)
//    val res = arr.par.reduce(_-_)

    //折疊,有初始值(無特定順序)
//    val res = arr.par.fold(10)(_+_)

    //折疊,有初始值(有特定順序)
//    val res = arr.foldLeft(10)(_+_)
//    val res = arr.foldRight(10)(_+_)
//    val res = arr.foldLeft(10)(_-_)
//    val res = arr.par.foldLeft(10)(_-_)

    //聚合
    val list7 = List(List(1,2,3),List(3,4,5),List(2),List(0))
//    val res = list7.flatten.reduce(_+_)
//    val res = list7.aggregate(0)(_+_.sum,_+_)

    val l1 = List(5,6,4,7)
    val l2 = List(1,2,3,4)
    //求并集
//    val res = l1 union l2

    //求交集
//    val res = l1 intersect l2
    //求差集
    val res = l1 diff l2
    println(res)

  }
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容