我想在 Scala 中将一个数组的一部分分配给另一个数组的一部分。例如,我想要执行以下 Python 代码的 Scala 或 Java 等效操作。
x[i:j] = y[k:l]
如何在 Scala 甚至 Java 中做到这一点?
最佳答案
您可以使用 .patch
和 .slice
的组合:
scala> val a = Array.range(1, 20)
a: Array[Int] = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
scala> val b = Array.range(30, 50)
b: Array[Int] = Array(30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49)
scala> a.patch(5, b.slice(5, 10), 5)
res5: Array[Int] = Array(1, 2, 3, 4, 5, 35, 36, 37, 38, 39, 11, 12, 13, 14, 15, 16, 17, 18, 19)
.slice
的参数是:
- 起始元素(Python 示例中的
i
) 要插入的数组 (
y[k:l]
,此处使用.slice
从k
到l
)数组中要替换的元素数量(不清楚当
i:j
小于k:l
时,示例中会发生什么,但我我猜这里应该是j-i
)
关于java - 如何使用 Scala/Java 中的索引从另一个数组分配一个数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42008459/