2011-12-19 49 views
1

這兩種方法需要考慮來自第二個類名爲car的布爾onLoan,以便它們能夠被應用,我的意思是說只有onLoan == false的汽車應該被考慮。我到了他們的基地試圖想到解決這個問題,但目前似乎還沒有什麼對我有用的建議?謝謝!Arraylist搜索和顯示對象方法混淆

/** 
* Constructor for objects of class RentalCompany 
*/ 
public void showAllCarsNotOnloan() 
{ 
    for (Car car:cars) { 

    if (cars.size()>0) { 

     int i = 0; 
     System.out.println(car.getDescription()); 
     i++; 

    } 
    else if (cars.size() < 0){ 
     System.out.println ("Add cars first"); 
    } 
    } 
} 

,第二種方法

public Car searchCar(String description) 
{ 
    for (Car car : cars) { 
     if (car.getDescription() == description) { 
      return car; 
     } 
     else { 
      System.out.println("This car is not listed. Retry!!"); 
     } 
    } 
    return null; 
} 
+0

注意的是,在第一種方法,你正在檢查的循環遍歷列表內的汽車列表的大小。如果你在循環中,列表不能爲空。 – 2011-12-19 21:12:10

+1

字符串比較需要'.equals'而不是'=='。 'car.getDescription()==描述「。 – 2011-12-19 21:13:50

+0

你想做什麼,什麼不工作? – 2011-12-19 21:19:31

回答

0

下面將做的工作:

Car類:

public class Car { 
    private boolean onLoan; 
    // Other variables... 

    public boolean isOnLoan() { 
     return onLoan; 
    } 
    // Other methods.... 
} 

現在,showAllCarsNotOnloan方法

public void showAllCarsNotOnloan() { 
    if (cars.size() == 0) { 
     System.out.println("Add cars first!"); 
     return; 
    } 

    for (Car car : cars) { 
     if (!car.isOnLoan()) { 
      System.out.println(car.getDescription()); 
     } 
    } 
} 

searchCar方法

public Car searchCar(String description) { 
    for (Car car : cars) { 
     if (car.getDescription().equals(description)) { 
      return car; 
     } 
    } 

    System.out.println("This car not listed. Retry!!"); 
    return null; 
} 
+0

我記住了這一點,但這意味着我需要在汽車類中增加一個公共方法,但是這個想法並沒有改變汽車類中的任何東西。它使添加方法變得簡單很多,但還有其他的選擇嗎?搜索方法也需要尋找剛剛錯誤的汽車,因此onLoan的汽車不被考慮。非常感謝您的評論和幫助! – user1102815 2011-12-19 22:51:06