Ihr Raster von 100 × 100 ist relativ klein, also ein 2D-Array ist der Weg zu gehen.
Wenn Ihr Gitter ist groß und dünn besiedelt, ein Map<Point, MyObject>
ist eine bessere Lösung, wo Point
x
und y
Koordinaten hat. Dies ermöglicht weiterhin eine sehr schnelle Suche nach dem Objekt, ohne alle Objekte nacheinander durchsuchen zu müssen. Wenn Sie Ihre eigene Point
Klasse implementieren, denken Sie daran, equals()
und hashCode()
, z. etwas wie dieses:
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;
}
}