gpt4 book ai didi

java - 使用for语句从数组java中删除元素

转载 作者:行者123 更新时间:2023-12-01 09:17:25 25 4
gpt4 key购买 nike

请参阅下面的代码。

任务是编写替换用户插入的元素的代码,并且替换时只能使用for语句(这是任务要求)。其余元素将被保存。例如。当输入为“1”时,预期输出为“0 2 3 4”

请帮助修改行后的 for 语句 "System.out.println("以下要删除的元素"+removedElement);".

如果可能,请告知何时可以使用“<”和“>”符号。

import java.util.Scanner;
public class MainClass {

public static void main(String[] args) {


int baseArray [] = {0, 1, 2, 3, 4};

System.out.println("Existing array:");

for(int i = 0; i < baseArray.length; i++){
System.out.println(baseArray[i]);
}

System.out.println("Please indicate number of element to be deleted");

Scanner scr = new Scanner (System.in);

int removedElement = scr.nextInt();

System.out.println("The following element to de deleted "+removedElement);

for (int i = baseArray.length; i>removedElement; i--){
**baseArray[i]=baseArray[i];**

}

scr.close();

for(int i = 0; i < baseArray.length-1; i++){
System.out.println(baseArray[i]);
}

}

}

最佳答案

似乎通过“删除”一个元素,您想通过将其后的所有元素向左移动一位来覆盖要删除的元素。为此,从要删除的位置开始,迭代直到最后一个位置之前的一个,并从下一个位置复制值:

for (int i = removedElement; i < baseArray.length - 1; i++) {
baseArray[i] = baseArray[i + 1];
}

郑重声明,此操作无需 for 循环即可实现,速度更快,使用 System.arraycopy :

System.arraycopy(baseArray, removedElement + 1, baseArray, removedElement, baseArray.length - removedElement - 1);

关于java - 使用for语句从数组java中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40443446/

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