gpt4 book ai didi

java - 从数组中删除对象 [java]

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

我的程序要求用户输入 5 个人的名字、姓氏和年龄,并将它们存储在一个数组中。我想编写一个方法,询问用户想要从数组中删除谁,然后删除该员工。我知道在数组中,从技术上讲,您无法从数组中删除对象,只需替换它即可。这是我到目前为止所做的:

private void deleteEmployee(){

Scanner scan = new Scanner(System.in);
System.out.println("Enter the first name of the employee you want to delete from the list")
String name = scan.nextLine();

for (int i = 0; i < employees.length; i++) {
if (employees[i].getFirstName().equals(name)){
employees[i] = employees[employees.length - 1];
break;
}

if (i == employees.length - 1) {
System.out.println("That requested person is not employed at this firm.")
}


}

我的问题是,它不会将数组大小减少 1,它只是将我要删除的人替换为数组中的最后一个人。我的输出使数组中的最后一个员工重复了两次(在它的最后一个索引和我想要删除的人的索引中)我该如何解决这个问题?

最佳答案

您可以在删除员工时将其替换为 null。当插入新员工时,可以先查看空索引并放置它。

private void deleteEmployee(){

Scanner scan = new Scanner(System.in);
System.out.println("Enter the first name of the employee you want to delete from the list")
String name = scan.nextLine();

for (int i = 0; i < employees.length; i++) {
if (employee[i] != null && employees[i].getFirstName().equals(name)){
employees[i] = null;
break;
}

if (i == employees.length - 1) {
System.out.println("That requested person is not employed at this firm.")
}
}

关于java - 从数组中删除对象 [java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22718898/

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