2012-04-03 55 views
-1

我有以下方法。在返回結果之前,我需要按照字母順序排列哈希映射。 如何更新我的代碼,以便按照字母順序保存hashmap中的字符串值?我擁有的列表是字母順序,但是在將其添加到散列表中後,散列仍然以e,d,f,g開頭,而不是與a,b,c,h,i ...等等。爲什麼? public Map> getSortedData { Map> result = new Hash>(); ArrayList contacts = null; String currletter = null;hashmap <String,ArrayList <T>> - 如何按字母順序排列>

for (T c:objects) 
{ 
if (!c.getLabel().equals(currletter)) 
{ 
contats = new ArrayList<T>(); 
currletter=c.getLabel(); 
results.put(currletter,contacts); 

} 
contacts/add(c); 
} 

how to update my code in order to save in hashmap the string values in alphabetic order? The list I have is alphabetic order, but still after adding it in hashmap the hash begins with e,d,f,g and than with a,b,c,h,i...and so on. WHY? 
    //??? HERE I WOULD LIKE FIRSTLY TO SORT TH HASHMAP ALFABETICALLY AFTER THE STRING VALUE 
    return result; 
    } 
+0

只要你不能。您必須使用其他結構來保存數據 – Blackbelt 2012-04-03 12:12:00

+1

無法對HashMap進行排序。這是它如何工作的一部分。 http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html – Jave 2012-04-03 12:12:32

+0

好吧然後如何更新我的代碼,以保存在散列表字符串值inalphabetic命令?我擁有的列表是按字母順序排列的,但是在將它添加到散列映射後,散列仍然以e,d,f,g開頭,而不是與a,b,c,h,i ...等等。爲什麼? – user1222905 2012-04-03 12:15:24

回答

2

使用TreeMap的排序結果

+0

你能否更新我的代碼? – user1222905 2012-04-03 12:14:51

+0

@ user1222905這很簡單,只需使用'TreeMap'而不是'HashMap'。 – Jesper 2012-04-03 12:15:54

+0

@ user1222905:使用TreeMap來代替HashMap進行自然排序 – 2012-04-03 12:17:29

相關問題