0
我期待在Java/LibGDX中有一個可以將多個原始值作爲鍵的映射。我的具體情況是我有多個需要附加對象的位置(x,y,z)。具有多個原始鍵的Java Map
目前我正在使用一個List(List)作爲鍵的(Object)Map,但是沒有更好的方法嗎?
我期待在Java/LibGDX中有一個可以將多個原始值作爲鍵的映射。我的具體情況是我有多個需要附加對象的位置(x,y,z)。具有多個原始鍵的Java Map
目前我正在使用一個List(List)作爲鍵的(Object)Map,但是沒有更好的方法嗎?
對您的問題的簡短回答是否,因爲原始類型不能是Java Map鍵。較長的回答你的問題是容易,使Position
類 -
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<Position, Object> map;
當然,這將需要'equals'覆蓋和'hashCode'作爲地圖的關鍵工作。 – Alex
@亞歷克斯良好的捕獲。編輯。 –
Straightly,我得到一個堆溢出使用您的代碼。如果我使用列表,我沒有。 –
RobotRock