Scala數組操作

來源:互聯網
上載者:User

標籤:布爾   插入   ring   布爾值   filter   刪除   長度   app   操作   

數組操作
  • 初始化固定長度的數組
// 初始化長度為10的數組val array = new Array[Int](10)// 初始化建立含有hello與Scala的數組val s = Array("hello","scala")
  • 建立可變的數組(類似java的集合)
Scala中建立長度可變的數組,類似與java中的ArrayList一樣Scala提供了ArrayBuffer,下面是ArrayBuffer的用法:// 建立集合等同於下面的new ArrayBuffer[Int]()val b = ArrayBuffer[Int]()new ArrayBuffer[Int]()// 集合添加元素類似與java中的list.add()多次調用添加函數b += (1, 2, 3, 4, 5, 6)// 可以追加新的集合元素類似java中的list.addAll()b ++=Array(7,8,9,10)// 移除前//5個元素 b.trimStart(5) /**  * 數組尾部刪除或者添加元素是非常快,但是中間 * 插入元素或者移除元素,操作較慢  */  val c = new ArrayBuffer[Int]()  c+=(1,2,3)  // 在索引2處插入元素6  c.insert(2,6)// ArrayBuffer(1, 2, 6, 3)  // 刪除索引為2元素  c.remove(2)  // 刪除索引1後一個元素  c.remove(1,1)  有時候建立元素,不知道儲存多少元素可以建立數組緩衝ArrayBuffer,然後調用toArray方法將緩衝區間轉為Array(類似於java中StringBuffer.toString方法)
  • 遍曆數組和數組緩衝
    val a = ArrayBuffer[Int]()    a+=(1,2,3,4,5,6)    //遍曆數組(變數i取值從0到a.length-1)    for(i<- 0 until a.length) println(a(i))    println(a(i)    // 遍曆偶數下標索引元素     for(i<- 0 until (a.length,2)) println(a(i))    // 倒著遍曆索引    for(i<- (0 until a.length).reverse) println(a(i))    // yield元素填充    val  result =for (e <- list) yield e *2    // 數群組轉換    val list = Array(1, 2, 3, 4)    // yield元素填充    val result = for (e <- list) yield e * 2    println(result.toBuffer)    // 捨棄偶數元素    val res = for (e <- list if e % 2 == 0) yield e    println(res.toBuffer)    // 也可以使用函數式編程使用filter和Map    val req = a.filter(_ % 2 == 0).map(2 * _)  }
  • Scala的常用演算法
Scala中有計算求和和排序     val list = Array(1, 2, 3, 4)    // 求和,求數組最大值,排序,而排序並不會影響原有的數組    println(list.sum, list.max,list.sorted.toBuffer)
方法 方法描述
def append(elems:A*):Unit 方法接受多個類型為A的元素,例如b.append(1,2)將對b追加2個元素
def count(p:(A)=>Boolean):Int 方法接受一個布爾值運算式,例如a.count(_>0)將會統計多個正數

方法demo

    val list = Array(8, 5, 1, 2, 3, 4)    val bs = list.sorted.toBuffer    bs.append(1,2)    println(bs)    // 統計集合大於4的元素個數    println( bs.count(_ > 4))

Scala數組操作

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.