- なぜ、次のコードはジョブを実行しませんか?
- ステップ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配列の列に1D配列を格納するにはどうすればよいですか?
- 2. マウスクリックでFlash var配列を交換するにはどうすればよいですか?
- 3. numpy 2D配列にnumpy 1D配列を乗算するにはどうすればよいですか?
- 4. 配列の要素の間隔をpython/numpyで合計するにはどうすればよいですか?
- 5. 要素属性をXSLTの要素名に変換するにはどうすればよいですか?
- 6. 最初の配列要素をjqueryでポップアウトするにはどうすればよいですか?
- 7. DOM要素をjQuery要素に変換するにはどうすればよいですか?
- 8. 文字列内の部分文字列を交換するにはどうすればよいですか?
- 9. Redisソートセット:最初に交差する要素を取得するにはどうすればよいですか?
- 10. Pythonの配列からランダム要素を選択するにはどうすればよいですか?
- 11. 配列から特定の要素を抽出するにはどうすればよいですか?
- 12. OpenGLで2Dスクリーン座標を2Dマップ座標に変換するにはどうすればよいですか?
- 13. 2つの配列を要素ごとに比較するにはどうすればよいですか?
- 14. 2D配列の列値の平均を見つけるにはどうすればよいですか?
- 15. 構造体の配列をPoint3Dの配列に変換するにはどうすればよいですか?
- 16. 値の配列を別のインデックス配列に変換するにはどうすればよいですか?
- 17. 配列内の要素のグループを選択するにはどうすればよいですか?
- 18. char配列の要素のアドレスを取得するにはどうすればよいですか?
- 19. Rubyで2D配列を動的に作成するにはどうすればよいですか?
- 20. クラスオブジェクトの配列をベクトル配列に変換するにはどうすればよいですか?
- 21. 配列要素から文字を削除するにはどうすればよいですか?
- 22. この2D配列に文字をランダムに追加するにはどうすればよいですか?
- 23. 配列内の要素を削除するにはどうすればよいですか?
- 24. 2つのオブジェクト配列要素を比較するにはどうすればよいですか?
- 25. 要素をWPFグリッド列内に配置するにはどうすればよいですか?
- 26. メソッドに配列要素を追加するにはどうすればよいですか?
- 27. 2D配列の型式はどうすればよいですか?タイプTのM個の要素を持つ配列の
- 28. 要素を置き換えるにはどうすればいいですか?
- 29. Dで2D配列を作成するにはどうすればよいですか?
- 30. Luaで2D配列を作成するにはどうすればよいですか?