Map按照value排序并截取Top10

递增P>0返回正值,递减P>0返回负值

List<Map.Entry<String,Double>> lists=new ArrayList<Map.Entry<String,Double>>(map.entrySet());
        Collections.sort(lists,new Comparator<Map.Entry<String, Double>>() {
            public int compare(Map.Entry<String, Double> o1,Map.Entry<String, Double> o2)
            {
                double q1=o1.getValue();
                double q2=o2.getValue();
                double p=q2-q1;
                if(p>0){
                    return 1;
                }
                else if(p==0){
                    return 0;
                }
                else{
                    return -1;
                }
            }
        });
        
if(lists.size()>=10){
	List<Map.Entry<String,Double>> subList= lists.subList(0, 10);
   for(Map.Entry<String, Double> set:subList){
        sortedMap.put(set.getKey(), set.getValue());
    }
}else {
    for(Map.Entry<String, Double> set:lists){
        sortedMap.put(set.getKey(), set.getValue());
    }
}

你可能感兴趣的:(J2SE)