list<map> 排序,根据总分数排序,高手来,加分

Map<String,String>map=newHashMap<String,String>();map.put("groupName",groupName);map.... Map<String,String> map = new HashMap<String,String>();
map.put("groupName", groupName);
map.put("branchName", branchName);
map.put("basicScore", String.valueOf(basicScore));
map.put("pulsScore", String.valueOf(pulsScore));
map.put("minusScore", String.valueOf(minusScore));
map.put("countScore", String.valueOf(countScore));
list.add(map);
这就是我的list中的map的结构,我现在要对这个list排序,怎么弄?
说明一下:我要根据countScore来排序,这个List中有16个这样的map,怎么排序,别讲原理,上代码的直接给分
展开
 我来答
历盆郁7
推荐于2018-03-28 · TA获得超过4277个赞
知道大有可为答主
回答量:1795
采纳率:100%
帮助的人:930万
展开全部

用Collections排序,给你个例子,你的太多,不方便查看

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class $ {
    public static void main(String[] args) {
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();

        list.add(getData(0));
        list.add(getData(3));
        list.add(getData(05));
        list.add(getData(6));
        list.add(getData(2));

        System.out.println("排序前" + list);

        Collections.sort(list, new Comparator<Map<String, String>>() {
            public int compare(Map<String, String> o1, Map<String, String> o2) {
                return o1.get("countScore").compareTo(o2.get("countScore"));
            }
        });

        System.out.println("排序后" + list);
    }

    private static Map<String, String> getData(int num) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("countScore", String.valueOf(num));
        return map;
    }
}

结果:

排序前[{countScore=0}, {countScore=3}, {countScore=5}, {countScore=6}, {countScore=2}]
排序后[{countScore=0}, {countScore=2}, {countScore=3}, {countScore=5}, {countScore=6}]

 如果是降序:改成这个

return o2.get("countScore").compareTo(o1.get("countScore"))

当然你可以按其他的字段排。

路亚向前冲8t
2013-09-25 · TA获得超过484个赞
知道小有建树答主
回答量:636
采纳率:0%
帮助的人:431万
展开全部
//Comparator<?>() 在问号填你list装的类型
Collections.sort(list,new Comparator<Map<String, Integer>>() {
public int compare(Map<String, Integer> o1, Map<String, Integer> o2) {
// 在这个方法比较2个对象,自己定义比较方式
//返回值<=0 表示不对2个对象顺序做出改变
//返回值>0   则反之
if(o1.get("paixu")<o2.get("paixu")){
return 7;
}
return 0;
}
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
75592147
2013-09-25
知道答主
回答量:1
采纳率:0%
帮助的人:1442
展开全部
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
int[] it = new int[list.size()];
for(int i = 0; i < list.size(); i++){
Map<String, String> map = list.get(i);
it[i] = Integer.valueOf(map.get("countScore")); // 转化对比数值
}
for (int i = 0; i < it.length -1; i++){ // 用冒泡排序
for(int j = 0 ;j < it.length - i - 1; j++){ // 对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
if(it[j] < it[j + 1]){ // 用list的index替换it数组的值互换
Map<String, String> map = list.get(j);
list.set(j, list.get(j + 1));
list.set(j + 1, map);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户93798
2013-09-25 · 贡献了超过318个回答
知道答主
回答量:318
采纳率:0%
帮助的人:104万
展开全部
啥意思 不排序?还有你要求是啥规则排序吗?你这还让人 自己发现规则啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式