[英]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.