具有多个基本键的Java映射
我希望在Java/LibGDX中有一个映射,它可以将多个原语值作为键。我的具体情况是,我有多个位置(x,y,z),需要附加一个对象具有多个基本键的Java映射,java,libgdx,Java,Libgdx,我希望在Java/LibGDX中有一个映射,它可以将多个原语值作为键。我的具体情况是,我有多个位置(x,y,z),需要附加一个对象 目前,我正在使用一个(对象)映射,并将一个列表作为键,但是没有更好的方法吗?您的问题的简短答案是否定的,因为基本类型不能是Java映射键。回答问题的时间越长,就越容易,在课堂上做一个位置- static class Position { int x; int y; int z; Position(int x, int y, int z) {
目前,我正在使用一个(对象)映射,并将一个列表作为键,但是没有更好的方法吗?您的问题的简短答案是否定的,因为基本类型不能是Java映射键。回答问题的时间越长,就越容易,在课堂上做一个
位置-
static class Position {
int x;
int y;
int z;
Position(int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}
public boolean equals(Object b) {
if (b instanceof Position) {
Position other = (Position) b;
return this.x == other.x && this.y == other.y && this.z == other.z;
}
return false;
}
public int hashCode() {
return (Integer.valueOf(x).hashCode() ^ Integer.valueOf(y)
.hashCode()) & Integer.valueOf(z).hashCode();
}
}
然后
Map;
当然,这需要覆盖equals
和hashCode
才能用作映射键。@Alex捕捉得好。我用你的代码得到了堆溢出。如果我使用列表,我不会。
Map<Position, Object> map;