package cn.php;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class CountList { public static void main(String[] args) { Liststrs = Arrays.asList("a", "b", "c", "d", "e", "a", "a", "a", "a", "b", "b", "b"); Map map = new HashMap (); Set set = new HashSet (strs); for (String str : set) { for (String lstr : strs) { if (str.equals(lstr)) { if (map.containsKey(str)) { Integer count = map.get(str); count++; map.put(str, count); } else { map.put(str, 1); } } } } //printMap(map); Map sortMap = sortMapByValue(map); printMap(sortMap); } private static Map sortMapByValue(Map map) { List > mapList = new ArrayList >( map.entrySet()); Collections.sort(mapList, new Comparator >() { @Override public int compare(Entry o1, Entry o2) { return o1.getValue()-o2.getValue(); } }); Map result = new LinkedHashMap (); for(Map.Entry entry:mapList){ result.put(entry.getKey(), entry.getValue()); } return result; } public static void printMap(Map map) { for (Map.Entry entry : map.entrySet()) { System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue()); } }}
public MapsortMapByKey(Map oriMap) { if (oriMap == null || oriMap.isEmpty()) { return null; } Map sortedMap = new TreeMap ( new Comparator () { public int compare(String key1, String key2) { int intKey1 = 0, intKey2 = 0; try { intKey1 = getInt(key1); intKey2 = getInt(key2); } catch (Exception e) { intKey1 = 0; intKey2 = 0; } return intKey1 - intKey2; } }); sortedMap.putAll(oriMap); return sortedMap; } private int getInt(String str) { int i = 0; try { Pattern p = Pattern.compile("^\\d+"); Matcher m = p.matcher(str); if (m.find()) { i = Integer.valueOf(m.group()); } } catch (NumberFormatException e) { e.printStackTrace(); } return i; }