gpt4 book ai didi

java - 我如何使用java编写remove方法?

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

我需要删除值。*参见插入方法 - *

@Override
public void insertFaculty(Faculty e) {
setFaculty(e);

list.add(e.getname());
list.add(e.getfid());
list.add(Double.toString(e.getsalary()));

System.out.println("\n\nFaculty inserted sucessfully.");
}

现在我需要删除从我的插入方法输入的值*我试过去掉方法但是还是不行(⊙_⊙;) *

@Override
public void removeFaculty(Faculty e) {
int i;

for(i = 1;i<list.size();i=i+1) {
System.out.println(list.get(i));
if(e.fid.equals(list.get(i))) {
System.out.println("Match found .");
list.remove(i-1);
list.remove(i);
list.remove(i+1);
}
else {
System.out.println("Not found .");
}
}
}

最佳答案

考虑一下,当您删除 i-1 时,所有内容都会移动 1。因此,之前位于 i 的内容现在位于 i-1 。如果您删除那个,最初位于 i+1 的东西将位于 i-1

因此,您可以删除 i-1 3 次:

// Or use a for loop.
list.remove(i-1);
list.remove(i-1);
list.remove(i-1);

或者颠倒删除的顺序:

list.remove(i+1);
list.remove(i);
list.remove(i-1);

或者清除一个子列表:

list.subList(i-1, i+2).clear();

并且不要忘记将 i 减一,因此您将在下一次迭代中检查 i 处的"new"事物(或者中断,如果您只需要找到一件事)。


综上所述,您似乎将不相关类型的相关数据放入同一个列表中。

您还要检查列表中的所有元素 - 但只有三分之一是 ID。一方面,您可以只检查元素 1、4、7 等。我不知道 id 的类型是什么,但通常您可以在“非 id 位置”找到等于 id 的值( 0、2、3、5 等),删除该元素和相邻元素会损坏您的列表。

与其这样做,不如创建一个类来保存您的三个字段。创建一个实例,并将其添加到列表中(或者直接存储您的 Faculty 对象)。

关于java - 我如何使用java编写remove方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61853123/

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