gpt4 book ai didi

java - 了解添加到数组方法的逻辑

转载 作者:行者123 更新时间:2023-11-30 02:40:35 24 4
gpt4 key购买 nike

此方法用于插入元素 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;
}
}

我理解有关 if(arr.length > 0) 的部分,这保证了我们正在使用至少包含 1 个元素的数组。其余的逻辑让我困惑。为什么设置i = arr.length,为什么后面要a - 1?为什么我 > 0?和--i?

谢谢

最佳答案

您正在从最后一个元素浏览到第一个元素,同时将每个元素移动一个。例如,当 i = 3 时,我们将元素 2 移动到位置 3。

但是这个方法行不通。正确的版本是:

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;
}
}

--i 在使用之前减少 i 的值,因此它应该是 i--i > 应从 arr.length 开始,否则您将不会移动最后一个元素。

关于java - 了解添加到数组方法的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41856915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com