查找数组列表中的最小值

时间:2014-10-02 01:17:35

标签: java arraylist

我正在尝试在数组列表中找到最小的值(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++; 
  }  

}

1 个答案:

答案 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;
}