java - 数据结构获取特定位置的所有元素

标签 java memory-management data-structures hash

我有一个具有一定高度和宽度的方形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/

相关文章:

linux - 如何释放 Inode 使用量?

ios - 返回并按下 UIAlertview 按钮时应用程序崩溃

java - 将数组转换为队列

c++ - 通常使用什么类型的数据结构来保存从固件/压缩图像中提取的大量文件信息?

c++ - 哪种数据结构最适合这个?

java - 使用单独的线程更新全局 HashMap 时出现空指针异常

java - App Engine Java 联合身份登录始终重定向到 Google 登录

java - 将数据发送到服务器时 Android 中的 ASN.1Exception

java - postInstantiate buildSessionFactory 慢/内存巨大的数据库

memory-management - 如何在 Rust 语言中以单个字节写入/读取 8 个 true/false