[英]How to create an irregular shaped two dimensional array in Java
除了根本不使用數組之外,沒有更好的方法。 在任何情況下,您都希望使用訪問器函數以某種統一的方式處理數組邊界和空槽,而不是依賴於數據結構的每個用戶來了解邊界和 NULL 條目的可能性。
最好的方法是創建一個典型的 5x5 方形數組並將 NULL 值放在 6 個空單元格中嗎?
是的,我認為這將是最直觀的解決方案。 請記住,您需要區分空呼叫和空卡單元格,因此不能對兩者都使用 null。 這應該不是問題:常量實例Square.EMPTY
會有所幫助。
二維數組是這類游戲最好的數據結構。 如果你能想出一種方法來說明邊界是什么以及如何很好地迭代板,你會沒事的。
或者是否有更復雜的方法來處理形狀奇特的二維數組?
我想不出任何。 你可以有
Square[][] board = new Square[MAX][];
board[2] = new Square[MAX];
board[3] = new Square[NOT_MAX];
但是對於長度為NOT_MAX
數組,您還需要存儲一個偏移量。 它使事情復雜化,並假設模式始終如您所展示的那樣簡單。 對於中間有間隙的模式,它不起作用。
您可以像這樣創建數組:
Square[][] board = new Square[5][];
board[0] = new Square[5];
board[1] = new Square[5];
board[2] = new Square[3];
board[3] = new Square[3];
board[4] = new Square[3];
默認情況下,如果尚未設置值,則 Java 數組包含用戶定義類型的null
。 您應該能夠根據需要設置其他條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.