我有一系列方框:
class Box {
int x1, y1, x2, y2;
}
假设我们需要创建一个盒子表。
Box[][] table;
我知道盒子的大小和宽度,以及桌子的高度。这是我建表的方法。
public Box[][] table(int boxSize, int xBound, int yBound) {
Box[][] boxes = new Box[xBound / boxSize][xBound / boxSize];
for (int x = 0; x < xBound; x += boxSize) {
for (int y = 0; y < yBound; y += boxSize) {
boxes[x % xBound / boxSize][y % yBound / boxSize] = new Box(x, y, x + boxSize, y + boxSize);
}
}
return boxes;
}
但问题是reminder
。如果我们需要将表格宽度设置为24,将高度设置为22并将框大小设置为5,那么我们得到ArrayIndexOutOfBoundsException
。如果存在提醒,我想为它创建一个小方框并将其添加到表中。
[0-5, 0-5] | [5-10, 0-5] | [10-15, 0-5] | [15-20, 0-5] | [20-24, 0-5]
...
[0-5, 20-22] | ...
我该怎么做?
答案 0 :(得分:1)
设置如下的方框数:
Box[][] boxes = new Box[(xBound - 1) / boxSize + 1][(yBound - 1) / boxSize + 1];
然后,当您创建每个框时,请检查x + boxSize
是否不大于xBound
,y
也是如此。