我有一个具有一定高度和宽度的方形Grid
。它包含 Item
类的成员。每个Item
都有一个特定的Position
。我希望能够在恒定时间内获取某个位置的所有项目,并且我希望能够在摊销恒定时间内将项目放置在网格上。
什么(Java)结构可以在使用与已用位置(至少有 1 个项目的位置)数量成比例的内存量的情况下执行此操作?
最佳答案
如果您的网格具有固定大小,我会使用数组。
Item[][] itemArray = new Item[3][3];
itemArray[0][0] = new Item();
System.out.println(itemArray[0][0]);
我会将其包装到Grid
类中
public final class Grid {
private Item[][] grid;
public Grid(int width, int height) {
grid = new Item[width][height];
}
public void setItemAt(Position position, Item item) {
int x = position.getX();
int y = position.getY();
grid[x][y] = item;
}
public Item getItemAt(Position position) {
int x = position.getX();
int y = position.getY();
return grid[x][y];
}
}
关于java - 数据结构获取特定位置的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329606/