gpt4 book ai didi

java - 如何从数组中删除一个元素?

转载 作者:行者123 更新时间:2023-12-01 06:54:46 26 4
gpt4 key购买 nike

我正在尝试让一名学生退学,这就是我到目前为止所得到的结果..

public void dropStudent() {

String id;
System.out.println(" Enter student ID " );
id = Keyboard.readString();

for ( int i = 0; i <= students.length - 1; i++)
{
if (id.equals(students[i].displayId()))
{
for (int j = i; j <= students.length - 1; j++)
{
students[i] = students[i+1];

}

}
}
}

所以第一个循环是针对数组的每个元素,if 语句是检查输入的 id 是否与数组中的学生 id 匹配。第二个“For”是将元素移回原处。当我尝试时,它确实删除了特定的学生。但它不是将元素移回去,而是复制两个位置的下一个元素。我尝试将元素设置为 null,但没有成功。

请问有什么建议吗?我也不允许使用数组列表或其他东西。

最佳答案

实例化后无法更改 Java 数组的大小。如果所需要的只是返回一个没有学生 ID 的数组。您想要创建一个少一个元素的新数组,然后迭代原始数组,复制除要删除的 id 之外的所有元素。

通常,您需要使用列表来实现此目的。但考虑到你的限制,这就是我解决它的方法。

类似于:

public String[] dropStudent(String delete, String[] students){
int length=students.length-1, i=0;
String[] remainingStudents= new String[length];

for(String student: students){
// catch the edge case where 'delete' is not found, and avoid the ArrayIndexOutOfBoundsException
if(i==remainingStudents.length){
return students;
}
// Add the any non-matching students to the final array.
if(!student.equals(delete)){
remainingStudents[i]=student;
i++;
}
}
return remainingStudents;
}

关于java - 如何从数组中删除一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14805378/

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