2017-10-21 102 views
0

我在做Java租車應用程序。我應該在Java中使用哪種數據結構?

  1. Car類字符串RegNoproducermodel和布爾isCarRented。汽車
  2. 列表我保持在:

    Collection<Car> carList = new HashSet<Car>();

,一切工作正常。

現在我需要做的是對整個租賃公司歷史/統計模塊:

  • 所有汽車租賃的歷史

  • 每個汽車租賃歷史分開

我的想法是:

  1. 與創建CarHistory類:

    私有靜態List<String> rentalDates = new ArrayList<String>();

  2. 保持有日期這我要添加的每個車是租來的時間。

  3. 創建數據結構,記住每個汽車租賃歷史是這樣的:

    static Map<Car, CarHistory> rentalList = new HashMap<Car, CarHistory>();

這是個好辦法嗎?我在這個解決方案中遇到了單個CarHistory的構造函數問題。不太確定它應該返回什麼。我應該在首次出租後創建它嗎?並且應該爲每輛車創建空的ListrentalDates以創建HashMap

+1

你似乎很喜歡靜態,不是嗎?將它用於rentalDates是沒有意義的。閱讀https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html。爲什麼汽車沒有保留自己的歷史(就像它已經保存了自己的汽車輪胎標誌一樣)?爲什麼使用字符串來存儲日期? –

+0

非常感謝您的指導。當然,將字符串更改爲日期數組,仍然需要考慮更多關於過度使用靜態的信息。現在Car的每個實例都有自己的故事。 –

回答

2

你所要做的是實現一個一對一的關係,因爲一個Car只有一個Car只有一個CarHistory和一個CarHistory關注。這就是爲什麼,正確的做法是將CarHistory carHistory字段添加到Car的類別中。

在開始時,CarHistory的列表將爲空。每次預訂時,您只需將一條記錄添加到列表中即可。汽車歷史將很容易獲得,而且該模型將以最準確的方式與現實相匹配。

+0

謝謝。我覺得我太過於複雜:)用你的解決方案看起來更合理。 –

相關問題