package com /** * Created by ZX on 2016/4/5. */ object ListTest { def main(args: Array[String]) { //建立一個List val lst0 = List(1,7,9,8,0,3,5,4,6,2) //將lst0中每一個元素乘以10後生成一個新的集合 val lst01=lst0.map(_ * 10) println("lst01"+lst01) val lst1 = lst0.map(x => x * 2) //將lst0中的偶數取出來生成一個新的集合 val lst02=lst0.filter(_ % 2==0) println("lst02"+lst02) val lst2 = lst0.filter(x => x % 2 == 0) //將lst0排序後生成一個新的集合 //正序 val lst03=lst0.sorted println("lst03"+lst03) //倒序 val lst04=lst0.sorted.reverse println("lst04"+lst04) val lst3 = lst0.sorted val lst4 = lst0.sortBy(x => x) val lst5 = lst0.sortWith((x, y) => x < y) //反轉順序 val lst6 = lst3.reverse //將lst0中的元素4個一組,類型爲Iterator[List[Int]] val lst05=lst0.grouped(4) // println("lst05"+lst05.toList) val it = lst0.grouped(4) //將Iterator轉換成List val lst7 = it.toList //將多個list壓扁成一個List val lst8 = lst7.flatten val lst06=lst05.toList.flatten println("lst06"+lst06) //先按空格切分,在壓平 val a = Array("a b c", "d e f", "h i j") val lst07=a.flatMap(_.split(" ")) println("lst07"+lst07.toList.flatten) a.flatMap(_.split(" ")) lst0.reduce(_+_) lst0.fold(10)(_+_) //並行計算求和 lst0.par.sum lst0.par.map(_ % 2 == 0) lst0.par.reduce((x, y) => x + y) //化簡:reduce //將非特定順序的二元操做應用到全部元素 val lst9 = lst0.par.reduce((x, y) => x + y) //按照特定的順序 val lst10 = lst0.reduceLeft(_+_) //摺疊:有初始值(無特定順序) val lst11 = lst0.par.fold(100)((x, y) => x + y) //摺疊:有初始值(有特定順序) val lst12 = lst0.foldLeft(100)((x, y) => x + y) //聚合 val arr = List(List(1, 2, 3), List(3, 4, 5), List(2), List(0)) val result = arr.aggregate(0)(_+_.sum, _+_) val l1 = List(5,6,4,7) val l2 = List(1,2,3,4) //求並集 val r1 = l1.union(l2) //求交集 val r2 = l1.intersect(l2) //求差集 val r3 = l1.diff(l2) val r4 = l2.diff(l1) println(r1) println(r2) println(r3) println(r4) val m = Map(("a", 1)) } }
val array = Array(1, 2, 3, 4, 5) println(array.fold(0)(_ + _)) //結果15 0+1+2+3+4+5
//並行集合 println(array.par.sum) println(array.par.reduce(_+_)) println(array.reduceLeft(_+_)) println(array.foldLeft(10)(_+_))
//聚合 val arrList=List(List(100,2,3),List(3,4,5),List(4,5)) val res=arrList.aggregate(10)(_+_.sum,_+_) println(res)