Re: 2D lookup table
- From: "Daniel Pitts" <googlegroupie@xxxxxxxxxxxxx>
- Date: 31 Jan 2007 10:56:15 -0800
On Jan 31, 9:16 am, "Mize-ze" <zahy.bn...@xxxxxxxxx> wrote:
If I want to store and fetch information from a matrix like structureWell, it kind of depends on the situation.
where the indexes of the matrix are not integers but other data
structures, how such thing can be done without a translation table?
Example:
If I have a list of doubles and I want to store a value per each pairs
of values
What is the best way to do this?
Thanks
You can't reliably use doubles as a key to anything. A pair of doubles
is, *ahem*, doublely unreliable.
But, if you have a String as an x coordinate, and a String as the y
coordinate, then you have a few options.
If there is a finite set of x coordinates and a finite set of y
coordinates, and the matrix is "mostly" full, then you would be best
to use a translation table.
Map<String, Integer> xCoordinates;
Map<String, Integer> yCoordinates;
Object[][] matrix = new Object[yCoordinates.size()]
[xCoordinates.size()];
Alternatively, if your matrix is "mostly" empty, you may wish to use
nested maps:
Map<String, Map<String, Object>> matrix;
As another alternative, you may want to use a different "structure"
altogether:
final class Coordinate<X, Y> {
final X x;
final Y y;
public Coordinate(X x, Y y) {
this.x = x;
this.y = y;
}
public boolean equals(Object o) {
if (o == null || !(o instanceof Coordinate)) {
return false;
}
Coordinate c = (Coordinate)o;
return c.x.equals(x) && c.y.equals(y);
}
public int hashCode() {
return x.hashCode() * 39 + y.hashCode();
}
}
Map<Coordinate, Object> matrix;
Hope this helps,
Daniel.
.
- References:
- 2D lookup table
- From: Mize-ze
- 2D lookup table
- Prev by Date: Tricky regex question
- Next by Date: Re: Vector Storing
- Previous by thread: Re: 2D lookup table
- Next by thread: Tricky regex question
- Index(es):
Relevant Pages
|