package way3; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class Test5 { public static void main(String[] args) { List<String> ids = new ArrayList<String>(); //让a 字母出现3次 for(int i = 0;i<3;i++){ ids.add("a"); } //让b出现5次 for(int i = 0;i<5;i++){ ids.add("b"); } //让c出现1次 ids.add("c"); List<Map<String, Object>> list = new ArrayList<>(); //出去list中所含字母 Set<String> set = new HashSet<>(ids); //获取每个字母出现的次数 for(String id : set){ Map<String, Object> map = new HashMap<>(); map.put("id", id); map.put("count", Collections.frequency(ids, id)); list.add(map); } //排序 Collections.sort(list, new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> o1, Map<String, Object> o2) { Integer count1 = (Integer) o1.get("count"); Integer count2 = (Integer) o2.get("count"); //有小到大 int i = count1.compareTo(count2); System.out.println(i); return i;//返回-i取相反结果 } }); System.out.println(list.toString()); } }