Scala的陣列操作
陣列在任何語言裡面都是很基本、很重要的一個資料結構,在Scala中也是如此。
陣列的定義:
1,定長陣列:
val nums = new Array[Int](10)
val a = new Array[String](10)
val s = Array("Hello", "World")
2,變長陣列
val b = ArrayBuffer[Int]()//定義一個變長陣列
陣列遍歷:
for (i <- 0 until a.length){
println(i + ": " + a(i))
}
或者:
for(elem <- a){
println(elem);
}
陣列操作:
s(0) = "Goodbye" // 賦值
b += 1
結果:ArrayBuffer(1)
b += (1, 2, 3, 5)
結果:ArrayBuffer(1, 1, 2, 3, 5)
b ++= Array(8, 13, 21)
結果:ArrayBuffer(1, 1, 2, 3, 5, 8, 13, 21)
b.trimEnd(5)
結果:ArrayBuffer(1, 1, 2),把最後5個元素去掉
b.insert(2, 6)
結果:ArrayBuffer(1, 1, 6, 2),在index=2處,插入6
b.insert(2, 7, 8, 9)
結果:ArrayBuffer(1, 1, 7, 8, 9, 6, 2),在index=2處,插入7,8,9三個元素
b.remove(2)
結果:ArrayBuffer(1, 1, 8, 9, 6, 2),刪除index=2處的元素
b.remove(2, 3)
結果:ArrayBuffer(1, 1, 2),從index=2處,刪除3個元素
b1 = b.toArray
結果:b1:Array(1, 1, 2),ArrayBuffer轉化為Array
val c = Array(2, 3, 5, 7, 11)
val result = for (elem <- c) yield 2 * elem
結果:result : Array[Int] = Array(4, 6, 10, 14, 22),yield將結果賦值給result
for (elem <- c if elem % 2 == 0) yield 2 * elem
結果:Array[Int] = Array(4)
c.filter(_ % 2 == 0).map(2 * _)//更優雅的寫法
其它操作:
Array(1, 7, 2, 9).sum
結果:Int = 19
ArrayBuffer("Mary", "had", "a", "little", "lamb").max
結果:String = little
val d = ArrayBuffer(1, 7, 2, 9)
val bSorted = d.sorted //排序後重新生成一個ArrayBuffer
結果:ArrayBuffer(1, 2, 7, 9)
val e = Array(1, 7, 2, 9)
scala.util.Sorting.quickSort(e)//排序作用於e本身
結果:Array(1, 2, 7, 9)
e.mkString(" and ")
結果:String = 1 and 2 and 7 and 9 生成一個字串,由and連線起來
e.mkString("<", ",", ">")
結果:String = <1,2,7,9> 制定起止字串,以及連線符
二維陣列
val matrix = Array.ofDim[Double](3, 4)//定義矩陣
matrix(2)(1) = 42
結果:Array[Array[Double]] = Array(Array(0.0, 0.0, 0.0, 0.0), Array(0.0, 0.0, 0.0, 0.0), Array(0.0, 42.0, 0.0, 0.0))
val triangle = new Array[Array[Int]](10)
for (i <- 0 until triangle.length)
triangle(i) = new Array[Int](i + 1)
陣列的定義:
1,定長陣列:
val nums = new Array[Int](10)
val a = new Array[String](10)
val s = Array("Hello", "World")
2,變長陣列
val b = ArrayBuffer[Int]()//定義一個變長陣列
陣列遍歷:
for (i <- 0 until a.length){
println(i + ": " + a(i))
}
或者:
for(elem <- a){
println(elem);
}
陣列操作:
s(0) = "Goodbye" // 賦值
b += 1
結果:ArrayBuffer(1)
b += (1, 2, 3, 5)
結果:ArrayBuffer(1, 1, 2, 3, 5)
b ++= Array(8, 13, 21)
結果:ArrayBuffer(1, 1, 2, 3, 5, 8, 13, 21)
b.trimEnd(5)
結果:ArrayBuffer(1, 1, 2),把最後5個元素去掉
b.insert(2, 6)
結果:ArrayBuffer(1, 1, 6, 2),在index=2處,插入6
b.insert(2, 7, 8, 9)
結果:ArrayBuffer(1, 1, 7, 8, 9, 6, 2),在index=2處,插入7,8,9三個元素
b.remove(2)
結果:ArrayBuffer(1, 1, 8, 9, 6, 2),刪除index=2處的元素
b.remove(2, 3)
結果:ArrayBuffer(1, 1, 2),從index=2處,刪除3個元素
b1 = b.toArray
結果:b1:Array(1, 1, 2),ArrayBuffer轉化為Array
val c = Array(2, 3, 5, 7, 11)
val result = for (elem <- c) yield 2 * elem
結果:result : Array[Int] = Array(4, 6, 10, 14, 22),yield將結果賦值給result
for (elem <- c if elem % 2 == 0) yield 2 * elem
結果:Array[Int] = Array(4)
c.filter(_ % 2 == 0).map(2 * _)//更優雅的寫法
其它操作:
Array(1, 7, 2, 9).sum
結果:Int = 19
ArrayBuffer("Mary", "had", "a", "little", "lamb").max
結果:String = little
val d = ArrayBuffer(1, 7, 2, 9)
val bSorted = d.sorted //排序後重新生成一個ArrayBuffer
結果:ArrayBuffer(1, 2, 7, 9)
val e = Array(1, 7, 2, 9)
scala.util.Sorting.quickSort(e)//排序作用於e本身
結果:Array(1, 2, 7, 9)
e.mkString(" and ")
結果:String = 1 and 2 and 7 and 9 生成一個字串,由and連線起來
e.mkString("<", ",", ">")
結果:String = <1,2,7,9> 制定起止字串,以及連線符
二維陣列
val matrix = Array.ofDim[Double](3, 4)//定義矩陣
matrix(2)(1) = 42
結果:Array[Array[Double]] = Array(Array(0.0, 0.0, 0.0, 0.0), Array(0.0, 0.0, 0.0, 0.0), Array(0.0, 42.0, 0.0, 0.0))
val triangle = new Array[Array[Int]](10)
for (i <- 0 until triangle.length)
triangle(i) = new Array[Int](i + 1)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28912557/viewspace-1825744/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Scala陣列操作陣列
- scala陣列與java陣列對比陣列Java
- 陣列的reduce操作+物件陣列的map操作陣列物件
- scala語法 -多維陣列陣列
- Scala陣列、元組與集合陣列
- 【Scala篇】--Scala中集合陣列,list,set,map,元祖陣列
- 陣列操作陣列
- 對陣列的操作陣列
- 陣列的操作(2)陣列
- 陣列的基本操作陣列
- vue陣列操作遇到坑-關於陣列操作Vue陣列
- 使用陣列實現環形佇列Scala版本陣列佇列
- 初識Java(Java陣列-陣列的基本操作)Java陣列
- 陣列的操作-變形陣列
- javascript陣列操作JavaScript陣列
- Numpy陣列操作陣列
- Jquery陣列操作jQuery陣列
- JavaScript 陣列操作JavaScript陣列
- PHP xml 轉陣列 陣列轉 xml 操作PHPXML陣列
- Scala—— Set、Map、Tuple、佇列操作實戰佇列
- Ruby 中陣列的常用操作陣列
- JavaScript中對陣列的操作JavaScript陣列
- JS常用陣列操作JS陣列
- JavaScript陣列常用操作JavaScript陣列
- JS中陣列操作JS陣列
- 記一次陣列操作:陣列 A 根據陣列 B 排序陣列排序
- 陣列的操作處理與陣列元素的氣泡排序 (轉)陣列排序
- NumPy 學習(2): 陣列的操作陣列
- Java陣列操作的10大方法Java陣列
- Python陣列常用操作Python陣列
- Numpy 陣列簡單操作陣列
- Java操作Json陣列JavaJSON陣列
- perl操作二維陣列陣列
- Scala操作Map
- Scala操作MongoDBMongoDB
- 常用的幾個陣列操作方法陣列
- JavaScript 陣列常見操作(一)JavaScript陣列
- JavaScript 陣列常見操作 (二)JavaScript陣列