Scala 數組操作之Array、ArrayBuffer以及遍歷數組


ArrayBuffer

 

Scala中,如果需要類似於Java中的ArrayList這種長度可變的集合類,則可以使用ArrayBuffer

 

// 如果不想每次都使用全限定名,則可以預先導入ArrayBuffer

import scala.collection.mutable.ArrayBuffer

// 使用ArrayBuffer()的方式可以創建一個空的ArrayBuffer

val b = ArrayBuffer[Int]()

// 使用+=操作符,可以添加一個元素,或者多個元素

// 這個語法必須要謹記在心!因為spark源碼里大量使用了這種集合操作語法!

b += 1

b += (2, 3, 4, 5)

// 使用++=操作符,可以添加其他集合中的所有元素

b ++= Array(6, 7, 8, 9, 10)

// 使用trimEnd()函數,可以從尾部截斷指定個數的元素

b.trimEnd(5)

 

// 使用insert()函數可以在指定位置插入元素

// 但是這種操作效率很低,因為需要移動指定位置后的所有元素

b.insert(5, 6)

b.insert(6, 7, 8, 9, 10)

// 使用remove()函數可以移除指定位置的元素

b.remove(1)

b.remove(1, 3)

// ArrayArrayBuffer可以互相進行轉換

b.toArray

a.toBuffer

 

 

遍歷ArrayArrayBuffer

// 使用for循環和until遍歷Array / ArrayBuffer

// 使untilRichInt提供的函數

for (i <- 0 until b.length)

  println(b(i))

// 跳躍遍歷Array / ArrayBuffer

for(i <- 0 until (b.length, 2))

  println(b(i))

// 從尾部遍歷Array / ArrayBuffer

for(i <- (0 until b.length).reverse)

  println(b(i))

// 使用“增強for循環”遍歷Array / ArrayBuffer

for (e <- b)

  println(e)

 

 

數組常見操作

 

// 數組元素求和

val a = Array(1, 2, 3, 4, 5)

val sum = a.sum

// 獲取數組最大值

val max = a.max

// 對數組進行排序

scala.util.Sorting.quickSort(a)

// 獲取數組中所有元素內容

a.mkString

a.mkString(", ")

a.mkString("<", ",", ">")

// toString函數

a.toString

b.toString

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM