Scala-配列
3689 ワード
配列は可変配列ArrayBufferと可変配列Arrayに分けられる.
Array
Arrayは可変配列で、ここでの可変はオブジェクトの参照が変更できないことを意味し、彼の長さは固定的に変更できないが、彼の要素は変更できる.可変配列を定義します.
読み込み、変更:
文字列に変換し、-で接続します.
最大値、最小値、合計を求める:
前または後に要素を追加し、可変配列であるため、新しい配列を返します. を加える を加える. を加える. を追加します.
ループ配列:until、to、indicesはインデックスを取得し、インデックスによって値を取得します.untilとtoの違いは,toが配列に等しい長さuntilが小さいことである.後ろのいくつかは配列を直接取る要素です.
ArrayBuffer
ArrayBufferは可変配列であるため,新規,削除などの操作が可能である.
読み取り、修正、これは可変配列とは異なり、初期値がないため、割り当てられた値を読み取ることができません.
文字列に変換し、-接続を使用して、最大値、最小値、加算配列を求めます.これらの可変配列は、ここでは説明しません.メソッドとシンボルの2つを含む要素を前後に追加します.
場所の新規要素を指定します.
要素を削除します.位置、位置の指定+長さの削除、要素の削除を指定できます.
へんかん
可変配列と可変配列は直接変換可能である.例えば次の例ではarr 3はArrayタイプであり、toBufferメソッドによりBufferのarr 4に変換され、arr 4はtoArrayメソッドによりArrayのarr 5に変換される
Array
Arrayは可変配列で、ここでの可変はオブジェクトの参照が変更できないことを意味し、彼の長さは固定的に変更できないが、彼の要素は変更できる.可変配列を定義します.
// 3 , 0,[] ,()
val arr1: Array[Int] = new Array[Int](3)
// , apply
val arr2: Array[Int] = Array(1, 2, 3)
読み込み、変更:
println(arr1(0)) // 0
println(arr2(0)) // 1
arr1(0) = 1
arr2.update(0, 11)
println(arr1(0)) // 1
println(arr2(0)) // 11
文字列に変換し、-で接続します.
println(arr2.mkString("-")) // 1-2-3
最大値、最小値、合計を求める:
println(arr2.sum) // 16
println(arr2.max) // 11
println(arr2.min) // 2
前または後に要素を追加し、可変配列であるため、新しい配列を返します.
.+:()
:方法、プラス記号は前にあるので、前に元素.:+()
:方法、プラス記号は後ろにあるので、後ろに元素+:
:記号、プラス記号は前にあるので、前に要素:+
:記号、プラス記号は後ろにあるので、後ろに要素val arr3 = arr2.+:(10).:+(4)
println(arr3.mkString("-")) // 10-11-2-3-4
val arr4 = 8 +: 9 +: arr3 :+ 5 :+ 6
println(arr4.mkString("-")) // 8-9-10-11-2-3-4-5-6
ループ配列:until、to、indicesはインデックスを取得し、インデックスによって値を取得します.untilとtoの違いは,toが配列に等しい長さuntilが小さいことである.後ろのいくつかは配列を直接取る要素です.
for (i print(e + "-")) // 11-2-3-
println()
arr2.foreach(println) // 11 2 3
ArrayBuffer
ArrayBufferは可変配列であるため,新規,削除などの操作が可能である.
// 3 , ,[] ,()
var arr1: ArrayBuffer[Int] = new ArrayBuffer()
var arr2: ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
println(arr1) // ArrayBuffer()
println(arr2) // ArrayBuffer(1, 2, 3)
読み取り、修正、これは可変配列とは異なり、初期値がないため、割り当てられた値を読み取ることができません.
// println(arr1(0)) // error
// arr1(0) = 1 // error
println(arr2(0)) // 1
arr2(0) = 11
println(arr2(0)) // 11
arr2.update(0, 1)
println(arr2(0)) //
文字列に変換し、-接続を使用して、最大値、最小値、加算配列を求めます.これらの可変配列は、ここでは説明しません.メソッドとシンボルの2つを含む要素を前後に追加します.
arr2.append(4)
println(arr2.mkString("-")) // 1-2-3-4
arr2.appendAll(ArrayBuffer(5, 6))
println(arr2.mkString("-")) // 1-2-3-4-5-6
arr2.prepend(99)
println(arr2.mkString("-")) // 99-1-2-3-4-5-6
arr2.prependAll(ArrayBuffer(97, 98))
println(arr2.mkString("-")) // 97-98-99-1-2-3-4-5-6
arr2 += 7
println(arr2.mkString("-")) // 97-98-99-1-2-3-4-5-7
arr2 += (8, 9)
println(arr2.mkString("-")) // 97-98-99-1-2-3-4-5-6-7-8-9
arr2 ++= ArrayBuffer(10, 11)
println(arr2.mkString("-")) // 97-98-99-1-2-3-4-5-6-7-8-9-10-11
arr2 :+= 12
println(arr2.mkString("-")) // 97-98-99-1-2-3-4-5-6-7-8-9-10-11
arr2 +:= 96
println(arr2.mkString("-")) // 96-97-98-99-1-2-3-4-5-6-7-8-9-10-11
場所の新規要素を指定します.
arr2.insert(4, 100)
println(arr2.mkString("-")) // 96-97-98-99-100-1-2-3-4-5-6-7-8-9-10-11-12
arr2.insertAll(5, ArrayBuffer(101, 102))
println(arr2.mkString("-")) // 96-97-98-99-100-101-102-1-2-3-4-5-6-7-8-9-10-11-12
要素を削除します.位置、位置の指定+長さの削除、要素の削除を指定できます.
arr2.remove(4)
println(arr2.mkString("-")) // 96-97-98-99-101-102-1-2-3-4-5-6-7-8-9-10-11-12
arr2.remove(4, 2)
println(arr2.mkString("-")) // 96-97-98-99-1-2-3-4-5-6-7-8-9-10-11-12
arr2 -= 96
println(arr2.mkString("-")) // 97-98-99-1-2-3-4-5-6-7-8-9-10-11-12
arr2 -= (97, 98, 99)
println(arr2.mkString("-")) // 1-2-3-4-5-6-7-8-9-10-11-12
へんかん
可変配列と可変配列は直接変換可能である.例えば次の例ではarr 3はArrayタイプであり、toBufferメソッドによりBufferのarr 4に変換され、arr 4はtoArrayメソッドによりArrayのarr 5に変換される
val arr3 = new Array[Int](4)
val arr4: mutable.Buffer[Int] = arr3.toBuffer
val arr5: Array[Int] = arr4.toArray