對MAP 進行排序 並遍歷取值
阿新 • • 發佈:2019-01-01
/** * 對map進行降序排列 * @param goodsCateMap * @return */ private Map<String, Long> Descending(Map<String, Long> goodsCateMap) { List<Map.Entry<String, Long>> list = new LinkedList<Map.Entry<String, Long>>(goodsCateMap.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Long>>() { public int compare(Map.Entry<String, Long> o1, Map.Entry<String, Long> o2) { return (o1.getValue()).compareTo(o2.getValue()); } }); Collections.reverse(list);//降序排列 Map<String, Long> result = new LinkedHashMap<String, Long>(); for (Map.Entry<String, Long> entry : list) { result.put(entry.getKey(), entry.getValue()); } return result; }
/* * 遍歷goodsCateMap 取出前value值前3的值 */ private String ergodicMap(Map<String, Long> goodsCateMap) { String str=""; for (Map.Entry<String, Long> entry : goodsCateMap.entrySet()) { System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); str += entry.getKey()+","; } String array[] = str.split(","); String result=""; for(int i=0;i<array.length && i<3;i++){ if(i==array.length-1||i==2){ result += array[i]; }else{ result +=array[i]+","; } }