Chapter 03配列関連アクション
6148 ワード
1.定長配列 Scala定義はArrayに用いられ、以下のように定義される.
2.変長配列:配列バッファ変長配列はArrayBufferに用いられる.
3.配列および配列バッファの遍歴はforループを使用し、untilは上限未満(含まない)のすべての数字を返します. は、下付き文字を使わずに配列に直接アクセスすることもできます. は2つの数字ごとにジャンプし、iの遍歴は以下の通りである. 配列の末尾から、iの遍歴は以下の通りである.
4.配列変換変換はメタ配列を変更せず、新しい配列を生成する.for(...)yieldを用いて配列変換を行う.
5.一般的なアルゴリズムの一般的なアルゴリズムは、 です.は、Arrayを直接ソートすることができるが、ArrayBufferをソートすることはできない. にはArrayまたはArrayBufferの内容が表示され、mkString、区切り記号、および接尾辞を指定できます.
6.多次元配列はofDim法で2次元配列を構築する.
【続き】
val nums = new Array[Int](10) // 10 , 0,String null
val s = Array("hello", "world") // new
s(0) // () []
2.変長配列:配列バッファ
import scala.collection.mutable.ArrayBuffer//
val b = ArrayBuffer[Int]() //
b += 1 //
b += (1, 2, 3, 4) //
b ++= Array(7, 9, 8) // ++=
b.trimEnd(3) // 3
b.insert(2, 5) // 2 5
b.insert(2, 4, 5, 8) // 2
b.remove(2) // 2
b.remove(2, 3) // 2 3
b.toArray // b ArrayBuffer Array
b.toBuffer // b Array ArrayBuffer
3.配列および配列バッファの遍歴
for (i <- 0 until b.length)
{
println(i + ": " + b(i)) // i 0 b.length-1
}
for (i <- b)
{ println(i) // i }
0 until (b.lenght, 2)
(0 until b.lenght).reverse
4.配列変換
val result = for (elem <- b if elem % 2 == 0) yield 2 * elem // ,
// :
b.filter(_ % 2 == 0).map(2 * _)
//
b.filter { _ % 2 == 0} map { 2 * _ }
5.一般的なアルゴリズム
Array(1, 4, 8).sum // , ArrayBuffer , max,min
val a = b.sorted // b , a
val c = b.sortWith(_>_) // sortWith b
val a = Array(9, 3, 1)
scala.util.Sorting.quickSort(a) // a Array(1, 3, 9)
a.mkString(" and ")
//"1 and 3 and 9"
a.mkString("<", ",", ">")
//"<1,3,9>
6.多次元配列
val m = Array.ofDim[Double](3, 4) // ,
m(row)(colum) = 2 //
【続き】