1

我需要一些有关 java 的帮助并从数组中返回结果。

我的数组列表存储来自餐厅的订单(由订单类创建)。Deliverylog 类(它创建数组列表)然后具有将订单添加到名为 waitingList 的数组列表的方法。

每个订单都有一个参考编号以及交货时间等详细信息..

我试图做的,但没有得到线索的是,创建一个带有参数(int ref)的方法,该方法将在数组列表中搜索与输入的参考号相同的项目。当它找到它时,它会返回 order ,否则它会返回 null。

任何帮助都会得到帮助。

代码

   /**
 * Show a order.
 * @param refnum The reference number of the order to be shown
 */
public void findOrderWaiting(int refnum)
  {
    if(refnum < 0) {
        // This is not a valid reference number
    }
    else if(refnum <= numberOfOrders()) {
        // This is a valid reference number
        System.out.println(waitingList.get(refnum));
    }
    else {
        // This is not a valid reference number
    }
  }
4

3 回答 3

1

你知道 arrayList 有一个方法可以在里面找到一个项目:

   //a is an arraylist

  //filling the list here is omitted

   //o is the object to find its index
   int ind=a.indexOf(o);   

int indexOf(Object o)已经发明了,所以你不必制作方法。如果您想将此用于学习目的,您可以从互联网上搜索散列技术,但您使用的是 arrayList,最简单的方法是 indexOf() 方法。

HashTable 更加灵活,让您可以自由搜索项目或密钥(您提供密钥并获取项目,或者您提供项目并获取其密钥)(密钥也可以是一个对象!)

于 2012-11-24T20:57:46.710 回答
0

好吧,您可以使用标准 for 循环遍历数组:

for(int i=0; i<array.length; i++){
   if(array[i].intPart == ref) return array[i];
}
return null;

希望有帮助!

于 2012-11-24T20:54:46.583 回答
0
for(String s: restaurentOrders){
   if(s.equalsIgnoreCase()){
              //You have it..
   }
}

如果您将数组/数组列表存储在restaurentOrders 中。希望能帮助到你

于 2012-11-24T20:57:57.260 回答