我正在尝试在数组列表中找到最小的值(iList)。数组列表包含多个项目(InventoryItem),每个项目都有自己的描述,成本等。我需要找到最小的成本,并返回成本最低的项目。此外,我必须使用while循环而不是for。到目前为止,这是我的代码:
public InventoryItem itemWithLowestCost() {
int index = 0;
double smallest = 0;
while (index < iList.size()) {
if (!(smallest < iList.get(index).getCost())) {
smallest = iList.get(index).getCost();
}
if (iList.get(index).getCost() == smallest) {
return //what to put here? ;
}
index++;
}
}
答案 0 :(得分:4)
这很简单。存储当前最低值,迭代,如果某些东西较小,则保存。最后返回当前最小值。
public InventoryItem itemWithLowestCost() {
InventoryItem smallest = iList.get(0);
for (int i=1;i<iList.size();i++) {
if(iList.get(i).getCost() < smallest.getCost()) {
smallest = iList.get(i);
}
}
return smallest;
}
如果你需要使用while循环,那么只需使用伪装的for循环;)
public InventoryItem itemWithLowestCost() {
InventoryItem smallest = iList.get(0);
int i = 1;
while (i<iList.size()) {
if(iList.get(i).getCost() < smallest.getCost()) {
smallest = iList.get(i);
}
i++;
}
return smallest;
}