- なぜ、次のコードはジョブを実行しませんか?
- ステップ2の後に「a」はどのように変更されますか?
タスクを実行する最適なソリューションは何ですか?Scalaで2D配列の要素を交換するにはどうすればよいですか?
// 1. Create a 2D array 'a' val a = Array.ofDim[String](2, 2) a(0)(0) = "TL" a(0)(1) = "TR" a(1)(0) = "BL" a(1)(1) = "BR" // 2. Swap two elements of 'a' to create a new 2D array 'b' val b = a b(0)(0) = a(0)(1) b(0)(1) = a(0)(0) // Output println("a:") println(a(0)(0) + " " + a(0)(1)) println(a(1)(0) + " " + a(1)(1)) println("b:") println(b(0)(0) + " " + b(0)(1)) println(b(1)(0) + " " + b(1)(1)) Result: a: TR **TR** BL BR b: TR **TR** BL BR
0
A
答えて
4
は深いクローンを作成するには、このようなあなたの2次元配列をコピーします。
val b = a.map(_.clone)
4
ライン:
val b = a
は "新しい" 配列b
が、配列a
にちょうど新しい参照を作成しません。したがってa
とb
は同じ配列を指します。
3
別のアプローチは、スワップメソッドを持つように配列クラスを拡張することです。あなたは次のようにそれを行うことができます:あなたはそれを再利用することができますこの方法
import SwapArray._
val array = Array(Array(1,2), Array(3,4))
array(0).swap(0,1)
println(array) // => Array(Array(2, 1), Array(3, 4))
と言っても;-)
に良くなります。object SwapArray {
class SwapArrayOp[A](array: Array[A]) {
def swap(x: Int, y: Int) = {
val a = array(x)
array(x) = array(y)
array(y) = a
}
}
implicit def array2Swap[A](array: Array[A]) = new SwapArrayOp(array)
}
を今、あなたは、このような値を入れ替えることができます
関連する問題
- 1. 2D int配列をStreamsで2D String配列に変換するにはどうすればよいですか?
- 2. intを2D配列の要素にキャストするにはどうすればよいですか?
- 3. 3D配列をGASの2D配列に変換するにはどうすればよいですか?
- 4. 2D配列を別の2D配列に挿入するにはどうすればよいですか? (Ruby)
- 5. 2D配列でコンストラクタパラメータを渡すにはどうすればよいですか?
- 6. ダブル配列の要素をQStringに変換するにはどうすればよいですか?
- 7. C#で2D文字列から要素を削除するにはどうすればよいですか?
- 8. 配列の要素の文字列を別の配列の要素の文字列に置き換えるにはどうすればよいですか?
- 9. 2D配列の列に1D配列を格納するにはどうすればよいですか?
- 10. セットをJavaの2D配列に変換するにはどうすればよいですか?
- 11. 1D配列をMATLABの2Dマトリックスに変換するにはどうすればよいですか?
- 12. マウスクリックでFlash var配列を交換するにはどうすればよいですか?
- 13. 配列の要素を別の配列に含めるにはどうすればよいですか?
- 14. C#で2Dオブジェクト配列を2D文字列配列に変換するにはどうすればよいですか?
- 15. 2D配列を使用するにはどうすればいいですか?
- 16. 配列の配列の最初の要素を指すようにベクトルの要素を設定するにはどうすればよいですか?
- 17. 配列の要素の値を同じ配列の別の要素に置き換えるにはどうすればよいですか?
- 18. ランダム配列の要素を交換すると、配列がスタック
- 19. numpy 2D配列にnumpy 1D配列を乗算するにはどうすればよいですか?
- 20. 配列の配列の要素の順序を変更するにはどうすればいいですか?
- 21. 要素をXSLTの別の変換要素に移動するにはどうすればよいですか?
- 22. Pythonで2Dリスト/配列の列ベクトルを初期化するにはどうすればよいですか?
- 23. React native reduxのレデューサーで配列に要素を追加するにはどうすればよいですか?
- 24. 既存のDOM要素テキストをHTML要素に変換するにはどうすればよいですか?
- 25. 要素属性をXSLTの要素名に変換するにはどうすればよいですか?
- 26. 交互に2つの要素があるナンシースライスの2D配列
- 27. インデックス値のない配列から要素を削除するにはどうすればよいですか?
- 28. 配列の要素の間隔をpython/numpyで合計するにはどうすればよいですか?
- 29. Cで2Dのmallocされた配列を解放するにはどうすればよいですか?
- 30. Rubyでは、配列内の要素を潜在的に複数の要素に置き換えるにはどうすればよいですか?