我有一个简单的类:
public class XYPoint {
public int x, y;
}
还有一个包含 Point 对象数组的二维数组:
(-2, 2)(-1, 2)(0, 2)(1, 2)(2, 2)
(-2, 1)(-1, 1)(0, 1)(1, 1)(2, 1)
(-2, 0)(-1, 0)(0, 0)(1, 0)(2, 0)
(-2, -1)(-1, -1)(0, -1)(1, -1)(2, -1)
(-2, -2)(-1, -2)(0, -2)(1, -2)(2, -2)
对应的id是:
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
假设我想获取 id 处的元素0
,然后它将返回-2, 2
。如果我想从6
,它会返回-1, 1
等等。
有什么方法可以在不循环整个数组的情况下获取元素?
您基本上可以想象一个以二维方式构建的一维数组。考虑到这一点,您可以将 1d 坐标(例如在您的情况下为 7)映射到 2d 上,如下所示:
[1d/宽度][1d mod 宽度]
1d 是您的“id”,宽度是 2d 数组长度
1d/width 导致您的 id 的相应“行”,以及相应“列”中的 1d mod 宽度
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句