【发布时间】:2019-11-04 22:05:24
【问题描述】:
我正在尝试将一个数组复制到一个新数组中,然后返回该新数组。问题是我只需要从某个范围内复制数组。
我做了一个 for 语句,将 int i 分配给决定开始的参数,并将其设置为运行,直到到达决定结束的参数。
int[] newSound = new int[sound.length];
for (int i = start_index; i < end_index; ++i) {
newSound[i] = sound[i];
}
return newSound;
如果数组是 [3, 2, 5, 6, 9] 并且范围是 [1, 3],它只会返回 [2, 5, 6]。问题是当我运行我的程序时,它返回 [0, 2, 5, 6, 0]。有谁知道为什么会这样?
【问题讨论】:
-
为什么不使用
Arrays.copyOfRange()? -
如果你想要一个更小的数组,你不需要让它和原来的大小一样。
-
如果你已经有了目标数组,也可以使用
System.arrayCopy() -
您是否打算将您的
end_index包含在最终数组中?您发布的代码不会这样做,这是我的答案基于