gpt4 book ai didi

java - 用于搜索每个对象的内存或用于所有图 block block 的内存哪个更快

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:55 25 4
gpt4 key购买 nike

我有一个 100 x 100 2d 网格的游戏。

我在一些方 block 中放置了物体。如果我希望用户能够从特定的方 block 中获取某些东西,那么每次都搜索每个对象会更好(使用更少的CPU),还是为每个图 block 都有一个对象以及一个对象数组,我可以在其中使用 objectArray[x][y]

找到该对象

最佳答案

100×100 的网格相对较小,因此二维数组是最佳选择。

如果您的网格很大且人口稀少,则 Map<Point, MyObject>是一个更好的解决方案,其中 Pointxy坐标。这仍然允许非常快速地查找对象,而不必按顺序扫描所有对象。

如果您实现自己的Point类,记得执行equals()hashCode() ,例如像这样的东西:

public final class Point {
private final int x;
private final int y;
public Point(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return this.x;
}
public int getY() {
return this.y;
}
@Override
public String toString() {
return "(" + this.x + "," + this.y + ")";
}
@Override
public int hashCode() {
return this.x * 127 + this.y;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Point) {
Point that = (Point) obj;
return (this.x == that.x && this.y == that.y);
}
return false;
}
}

关于java - 用于搜索每个对象的内存或用于所有图 block block 的内存哪个更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38282836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com