2010-12-13 72 views
2

我正在設計一個新的電影預訂系統,在那裏將會有4個屏幕,每個屏幕都有不同數量的座位。要使用哪個數組?

我需要知道什麼ARRAY或什麼數據結構最適合添加和刪除他們想要在屏幕上的任何人或座位上的座位。

我相信我會需要一個2維陣列結構,但任何幫助將非常感激!......謝謝

+0

你回答了這個問題,只是使用二維數組。對於4個屏幕,您可以擁有它們的ArrayList。 – Itsik 2010-12-13 19:52:30

回答

0

的ArrayList是一個很好的簡單的數組類型列表中允許添加和刪除。

如果你願意,你可以創建一個數組數組。那將是一個2維數組。

+0

yehs我正在看2d陣列。並會ArrayList允許我添加和刪除屏幕上的任何地方?謝謝 – Simagen 2010-12-13 20:25:20

+0

嗯,我不知道你的屏幕是如何工作的,但我知道ArrayList將允許你插入或刪除開始,結束或中間的項目。普通的Java數組只允許你替換項目,不添加/刪除。 – 2010-12-13 21:01:04

+0

如果我使用的是一個普通的java數組,那麼我會將節點的值設置回null,以便它再次可用不是嗎? 我還沒有設計屏幕,但我需要質疑的主要數據結構是用哪個數組來表示我的屏幕。 將會有4個屏幕。 2個每個擁有100個座位,每個擁有64個屏幕。所以我需要能夠選擇我想要在我的2維座位陣列中的任何座位。 – Simagen 2010-12-13 22:26:35

0

聽起來像4個相同數據結構的實例。可能是包含座位集合的屏幕對象集合。

2

你應該做的是建立一個類結構,它將抽象出你在內存中存儲數據的方式。你可以這樣做:

class Cinema { 

    List<Auditorium> screens; 

} 

class Auditorium { 
    int number; 
    List<SeatRow> rows; 

} 

class SeatRow { 
    int rowNumber 
    List<Seat> seats; 

} 

class Seat { 
    int seatNumber; 
    boolean occupied; 
} 

注:這是不是唯一的解決辦法。您可能需要考慮將Seats存儲在Map或某些其他數據結構中。

0

我會親自投票給上面建議的類結構的普通和簡單的Seat[][]數組。沒有理由使用另一個數組,因爲數組大小可能永遠不會改變,如果這可以在初始化時完成。然後只顯示他們或不在屏幕上顯示某個位置的數據或null用於無保留的座位。

根據您的需要(您是否需要記住客人預訂的位置?),您甚至可以使用boolean[][]作爲最低限度。

無論如何,只需創建並命名四個不同的Seat 2D陣列即可。最好把他們放在一個單獨的班級,並有二傳手和吸氣器。