我有一個for-loop打印數據。第一個位置是一個字母,第二個是數字。 像這樣:在java中按字典順序排列(按字母順序)
H 8
T 3
A 9
F 4
我怎樣才能在詞典(字母)這個數據排序(關鍵是一個字母)的訂單?輸出必須是:
A 9
F 4
H 8
T 3
我應該把數據放入列表並使用Collections.sort(list);
?在這種情況下,這些數字不在必要的位置。
P.S其實這是作業的一小部分,但我不知道如何解決這個問題。
我有一個for-loop打印數據。第一個位置是一個字母,第二個是數字。 像這樣:在java中按字典順序排列(按字母順序)
H 8
T 3
A 9
F 4
我怎樣才能在詞典(字母)這個數據排序(關鍵是一個字母)的訂單?輸出必須是:
A 9
F 4
H 8
T 3
我應該把數據放入列表並使用Collections.sort(list);
?在這種情況下,這些數字不在必要的位置。
P.S其實這是作業的一小部分,但我不知道如何解決這個問題。
如果你定義爲您的數據類型:
class Data implements Comparable<Data> {
private char letter;
private int number;
public int compareTo(Data d) {
if(letter > d.letter) return 1;
if(letter < d.letter) return -1;
return 0;
}
}
然後你就可以把你的Data
實例在ArrayList
和使用Collections.sort
。
您還可以使用的Map的實現,例如TreeMap,使用字符作爲Key
並作爲Value
數量。這樣你就不必將字符和數字封裝在一個對象中,仍然保持映射。
This answer to another question顯示瞭如何按照排序順序從該地圖中獲取密鑰。從那裏,你可以使用鍵並以排序順序獲取值。
*對於java用戶
將你的數據放入散列表(你的地圖)。
HashMap<Integer,String> map = new HashMap<Integer,String>();
youMap.put(H,8);
youMap.put(T,3);
youMap.put(A,9);
youMap.put(F,4);
List sortedKeys=new ArrayList(yourMap.keySet());
Collections.sort(sortedKeys);
for(String key: sortedKeys){
system.out.println(key+" "+yourMap.get(key));
您應該在發佈之前嘗試搜索:http://stackoverflow.com/q/708698/590177 –