大數據學習——scala數組

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)
  }


}
相關文章
相關標籤/搜索