具有多个基本键的Java映射

具有多个基本键的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/LibGDX中有一个映射,它可以将多个原语值作为键。我的具体情况是,我有多个位置(x,y,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;