在这个程序中,您将学习使用arraycopy和不使用arraycopy连接Kotlin中的两个数组。
import java.util.Arrays
fun main(args: Array<String>) {
val array1 = intArrayOf(1, 2, 3)
val array2 = intArrayOf(4, 5, 6)
val aLen = array1.size
val bLen = array2.size
val result = IntArray(aLen + bLen)
System.arraycopy(array1, 0, result, 0, aLen)
System.arraycopy(array2, 0, result, aLen, bLen)
println(Arrays.toString(result))
}运行该程序时,输出为:
[1, 2, 3, 4, 5, 6]
在上面的程序中,我们有两个整数数组array1和array2。
为了合并(连接)两个数组,我们找到其长度分别存储在aLen和bLen中。然后,我们创建一个长度为aLen + bLen 的新整数数组 result。
现在,为了将两者结合在一起,我们使用arraycopy()函数将两个数组中的每个元素都复制为 result。
arraycopy(array1, 0, result, 0, aLen)函数,简单来说,程序将array1从索引0复制到result从索引0复制到aLen。
同样,对于arraycopy(array2,0,result,aLen,bLen)告诉程序将array2从索引0复制到result从索引aLen复制到bLen。
import java.util.Arrays
fun main(args: Array<String>) {
val array1 = intArrayOf(1, 2, 3)
val array2 = intArrayOf(4, 5, 6)
val length = array1.size + array2.size
val result = IntArray(length)
var pos = 0
for (element in array1) {
result[pos] = element
pos++
}
for (element in array2) {
result[pos] = element
pos++
}
println(Arrays.toString(result))
}运行该程序时,输出为:
[1, 2, 3, 4, 5, 6]
在上面的程序中,我们没有使用arraycopy,而是手动复制数组array1和array2的每个元素到result。
我们存储 result 所需的总长度,即 array1.length + array2. length。然后,我们创建一个新的长度数组 result。
现在,我们使用for-each循环来遍历array1的每个元素并将其存储在结果中。赋值后,我们增加位置pos 1, pos++。
同样地,我们对array2执行同样的操作,并从array1之后的位置开始存储result中的每个元素。
这是等效的Java代码:连接两个数组的Java程序。