gpt4 book ai didi

java - 如何返回已删除的对象?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:45:21 25 4
gpt4 key购买 nike

我有一个方法应该在输入 InventoryItem 的部分描述时删除数组列表 (iList) 中的 InventoryItem (i)。该方法必须返回已删除的项目,我不确定如何执行此操作。到目前为止,这是我的代码。

public InventoryItem deleteInventoryItem(String descriptionIn) {

int index = -1;
boolean result = false;

for (InventoryItem i : iList) {
if (i.getDescription().toLowerCase().startsWith(descriptionIn.toLowerCase())) {
index = (iList.indexOf(i));
result = true;
}

if (index >= 0) {
iList.remove(index);
}
}

return null;


}

最佳答案

I can't use an iterator. [...] I need to use a for each loop

这是一种方法:

public InventoryItem deleteInventoryItem(String descriptionIn) {
for (InventoryItem item : iList)
if (item.getDescription()
.toLowerCase()
.startsWith(descriptionIn.toLowerCase())) {
iList.remove(item);
return item;
}
}
return null;
}

请注意,这最多会从列表中删除一个对象。如果有多个匹配项,则只会删除第一个匹配项。

If I simply wanted to find and return an object instead of deleting it, [...]

然后您只需跳过 iList.remove(item) 行。

但更好的方法是按如下方式拆分方法:

public InventoryItem findInventoryItem(String descriptionIn) {
for (InventoryItem item : iList)
if (item.getDescription()
.toLowerCase()
.startsWith(descriptionIn.toLowerCase())) {
return item;
}
}
return null;
}

public InventoryItem deleteInventoryItem(String description) {
InventoryItem item = findInventoryItem(description);
if (item != null)
iList.remove(item);
return item;
}

关于java - 如何返回已删除的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26262089/

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