public static char[] copyOfRange(char[] original, int from, int to) {
int newLength = to - from;
if (newLength < 0)
throw new IllegalArgumentException(from + " > " + to);
char[] copy = new char[newLength];
System.arraycopy(original, from, copy, 0,
Math.min(original.length - from, newLength));
return copy;
}arraycopy(src,sPos,dest,dPos,length)中最后一個參數是“要復制的數組元素的數量”,那就用newLength代入了,為什么還要比較“original.length - from”和“newLength”之間誰最小值?這樣做的用意是?謝謝!
1 回答

波斯汪
TA貢獻1811條經驗 獲得超4個贊
我來告訴你。
char[] copy = new char[newLength];
這個是你想復制出來的數組的大小,注意這個大小,不一定全部是有數據的。
他的值完全決定于 你的 from to;
這個是真要復制有數據的大小。
Math.min(original.length - from, newLength)
假設這里面 原始數組的長度是 8 from為 4 to為 10
說明我要創建一個6個長度的數組,前4個數據來源于原始數據!~~后兩個,干啥現在還不清楚。。明白了吧!~~
添加回答
舉報
0/150
提交
取消