簡體   English   中英

創建列表數組

[英]Creating an Array of Lists

有沒有一種方法可以在Java中組合列表和數組? 我將圖塊地圖的數據存儲在2D數組而不是2D列表中,因為這樣我可以為它們定義一個設置大小。 到目前為止,它之所以有效,是因為每個位置都只有一個圖塊,並且只能有一個單獨的對象占據它。 現在,我想向單個圖塊添加多個效果,但是Java不允許使用泛型創建Array,因此沒有ArrayList [] []。 如果每個圖塊是其自己的對象,則可以僅具有自己的ArrayList效果,但是我真的想避免這種情況。 另外我也不知道每個圖塊可能有多少個效果,所以我不能只定義3D數組。

有關如何解決此問題的任何建議。 我想要更多面向設計的建議,而不是hack來解決數組/泛型問題。

我認為比復雜的嵌套結構更適合面向對象的方法。

將所需內容封裝到一個對象中,可以用更簡單的方式進行維護。 我看到您的方法變得晦澀難懂,並且很難很快采取。

如果每個條目都保持其(i, j)位置及其狀態在網格中(i, j)則可以維護一個稀疏條目List

面向對象的方法是使每個圖塊成為一個對象,但是您說您確實想避免這種情況。 如果這是問題,則可以使用繼承而不是合成:

class Effects extends ArrayList<Effect> { }

另一種選擇是使用未經檢查的演員表,您也說您不想要這樣:

ArrayList<Effect>[][] board = (ArrayList<Effect>[][]) new ArrayList[...][...];

可以使用功能強大的Guava TableJavaDoc )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM