国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

給HashMap排序,使之成為有序Map

2019-11-14 21:13:52
字體:
來源:轉載
供稿:網友
給HashMap排序,使之成為有序Map

如何給HashMap中的值排序?這個問題很多人都遇到過,很常見的一個方案是使用LinkedHashMap,因為LinkedHashMap可以記住元素放入的順序,可以認為是真正的“有序”(想讓HashMap有序是不可能的),我比較喜歡。然而問題是往往數據已經封裝在了HashMap中,我們必須手動的排序后再放入LinkedHashMap,這當然也就成了思路,代碼實現起來也很簡單,寫出來看起來還挺舒服的,順手記一下:

            Map<String,String> myMapTmp = XXDao().getXXX();            Map<String,String> myMap = new LinkedHashMap<String,String>();                        List<String> keyList = new ArrayList<String>();            Iterator<String> it =myMapTmp.keySet().iterator();            while(it.hasNext()){                keyList.add(it.next());            }            Collections.sort(keyList);            Iterator<String> it2 = keyList.iterator();            while(it2.hasNext()){                String key = it2.next();                myMap.put(key, myMapTmp.get(key));            }

值得注意的是Collections.sort()方法,API上的解釋是:根據元素的自然順序對指定列表按升序進行排序。列表中的所有元素都必須實現 Comparable 接口。此外,列表中的所有元素都必須是可相互比較的(也就是說,對于列表中的任何 e1 和 e2 元素,e1.compareTo(e2) 不得拋出 ClassCastException)。我已經測試過String類型是可以直接使用這個接口的,如果你的list中元素是自定義的,那么就要自己實現Comparable,自己編寫比較器了。說了這么多,正文其實是在這里,在用ibatis的queryForMap是查出的結果是無序的,即便是sql中有orderby,即便是ibatis文件中指定了返回值類型(有序類型,如TreeMap,LinkedHashMap),ibatis對數據的填充到底是怎么弄的,我也不清楚,所以才只能在內存中排序,也不失是一種辦法,同時拋磚引玉,看看有沒有大俠給說說有沒有其他辦法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 射洪县| 喀什市| 钟山县| 平泉县| 祁连县| 镇沅| 金堂县| 邓州市| 阿坝| 荃湾区| 三河市| 安阳县| 邛崃市| 元朗区| 班玛县| 兴文县| 阜南县| 乐平市| 阜康市| 铜陵市| 和硕县| 福州市| 鄄城县| 玛纳斯县| 宁德市| 电白县| 泊头市| 永吉县| 灌云县| 垦利县| 民县| 博罗县| 枞阳县| 永登县| 长寿区| 慈利县| 法库县| 博爱县| 广灵县| 永定县| 萍乡市|