2016-11-14 75 views
-3

我有對象的ArrayList:最長停放的車輛

private ArrayList<Vehicle> vehicles = new ArrayList<>() 

當用戶輸入的所有細節,加上車輛,他輸入的日期和時間:
例輸入:
輸入日期: DD/MM/YYYY
13/11/2016
輸入時間:HH:MM
10:00

該數組有20個對象的容量,所以有多個輸入,日期和時間輸入爲字符串。如何顯示停放時間最長的車輛?我有這樣的東西,但它不會工作。

 long longest = 0; 
     for (Vehicle vehicle : vehicles){ 
      long hours = vehicle.getDateTime().hours(); 
      if (hours > longest){ 
       longest = hours; 

      } 

     } 
+2

你以前沒問過嗎?另外,*不會工作*不會幫助任何人。 *什麼*不起作用? *如何*不起作用? – Li357

+1

你也許應該把你的_println_移到循環之後,否則它們很可能會被調用很多次。 – Gulllie

回答

1

打印外循環最長的,不是每次你找到一個較長的

long longest = Long.MIN_VALUE; 
    Vehicle v = null; 
    for (Vehicle vehicle : vehicles){ 
     long hours = vehicle.getDateTime().hours(); 
     if (hours > longest){ 
      longest = hours; 
      v = vehicle; 
     } 
    } 

    if (v!=null) { 
     System.out.println("Longest Parked Vehicle is:"); 
     System.out.println(v); 
    } 

而且,實現對車輛類toString方法!

+0

謝謝我錯過了最後一部分,經過這麼多小時解決,再次感謝。 – tomaszsvd

+0

下次嘗試使用調試器;) –