package com import scala.collection.mutable.ArrayBuffer /** * Created by Administrator on 2019/4/8. */ object TestMap { def main(args: Array[String]) { //**定長數組和變長數組************************************************* //數組經常使用方法 val arr = Array(1, 2, 3, 4, 5); val a1 = arr.map(_ * 10) val a2 = arr.filter(_ % 2 != 0) println(a2.toBuffer) //排序 val arr1 = Array(1, 4, 8, 3, 2, 6, 9, 5) //升序 println(arr1.sorted.toBuffer) //降序 println(arr1.sorted.reverse.toBuffer) //升序 println(arr1.sortWith((x, y) => x < y).toBuffer) //降序 println(arr1.sortWith((x, y) => x > y).toBuffer) //注意:若是new,至關於調用了數組的apply方法,直接爲數組賦值 //初始化一個長度爲1的定長數組 val arr2 = Array[Int](10) println(arr2.toBuffer) //定義一個長度爲3的定長數組 val arr3 = Array("hadoop", "storm", "spark") //使用()來訪問元素 println(arr3(0)) //變長數組(數組緩衝) //若是想使用數組緩衝,須要導入scala.collection.mutable.ArrayBuffer包 var ab = ArrayBuffer[Int]() //向數組緩衝的尾部追加一個元素 //+=尾部追加元素 ab += 1 //追加多個元素 ab +=(2, 3, 4, 5) //追加一個數組++= ab ++= Array(6, 7) //追加一個數組緩衝 ab ++= ArrayBuffer(8, 9) //打印數組緩衝ab println(ab) //在數組某個位置插入元素用insert ab.insert(0, -1, 0) //在首位插入-1,0兩個元素 println(ab) //刪除數組某個位置的元素用remove ab.remove(8, 2) //從第9位開始刪除兩個元素 println(ab) //**遍歷數組************************************** //初始化一個數組 val arr4 = Array(1, 2, 3, 4, 5, 6, 7, 8) //加強for循環 for (i <- arr4) println("---" + i) //好用的until會生成一個Range //reverse是將前面生成的Range反轉 for (i <- (0 until arr4.length).reverse) println(arr4(i)) //**數組轉換************************************** //yield關鍵字將原始的數組進行轉換會產生一個新的數組,原始的數組不變 val arr5 = for (e <- arr4) yield e * 2 println(arr5.toBuffer) val arr6 = arr4.map(_ * 3) println(arr6.toBuffer) //數組經常使用算法 println(arr5.sum) println(arr5.max) println(arr5.sorted.toBuffer) } }