此方法用於插入元素toAdd作爲數組arr的新第一個元素,將所有當前元素移位以騰出空間。數組原來的最後一個元素將會丟失。該方法沒有返回值,如果該數組沒有元素,它應該沒有效果。瞭解添加到數組方法的邏輯
public static void insert(int[] arr, int toAdd){
if(arr.length > 0) {
for(int i = arr.length - 1; i > 0; --i) {
arr[i] = arr[i - 1];
}
arr[0] = toAdd;
}
}
我瞭解如果(arr.length> 0)這保證了我們正在以與陣列與至少1個元素的部分。其餘的邏輯混淆了我。爲什麼設置i = arr.length,爲什麼a - 1之後呢?爲什麼我> 0?和我?
謝謝
試着用一個簡單的數組在一張紙上做算法。它會幫助你理解它。 – litelite
如果您想從'i = 0'到'arr.length - 1'執行算法,請在紙上試試:您需要額外的變量,否則會丟失一些信息。向後做循環可以消除這個變量。 –
@ArnaudDenoyelle謝謝,後面的循環是什麼意思? – jun