1
編輯裏面的值:解決。我需要定義的順序切換爲整數,動作排序一個TreeMap的java
我已經創建了一個一到一個TreeMap中,其中鍵是枚舉和的值是整數。我想循環從最小值到最大值,並且遇到一些麻煩。
功能當我運行下面的for循環不按升序排列打印值它創建地圖
public TreeMap<Action,Integer> mapMoves(int position, ArrayList<Action> directions){
TreeMap<Action,Integer> map = new TreeMap<>();
for(Action a : directions){
switch(a){
case UP:
map.put(a,board.get(position-3));
break;
case DOWN:
map.put(a,board.get(position+3));
break;
case LEFT:
map.put(a,board.get(position-1));
break;
case RIGHT:
map.put(a,board.get(position+1));
break;
}
}
return map;
}
。
TreeMap<Action, Integer> map = current.hashMoves(emptyIndex, possibleMoves);
for (Map.Entry<Action, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
,因爲你的關鍵是 「行動」,而不是數量 – IddoE
如果我可以這樣說,我認爲你正在嘗試使用一個數據結構來實現它沒有爲之而作。爲了給出一個建議,你可以對'directions'數組進行排序,並使TreeMap指向數組中的位置。這樣,您就擁有了兩全其美的優勢:您可以使用TreeMap快速獲取使用鍵搜索的值,並且只需使用排序的數組即可按順序打印所有值。 – Discoverer98
好的。直覺上似乎倒退到我,因爲密鑰通常字符串和值是數字 –