日期:2014-05-18  浏览次数:20659 次

List集合排序有没有一种最简单的方法
我有一个List<Map<String,Object>> list集合
这个集合里面的map中有个时间列
我想通过这个时间列将这个list集合排序

我能想到的方法有:
一 通过循环排序
二 将list集合里面的map集合转成对象,再在对象里面实现Complarable 接口进行排序,

脑子笨想不到很好的方法,请教各路大神有木有更简单,效率更高的方法。

------解决方案--------------------
public class MapBean implements Comparator<MapBean> {
private Map<String,Object> map=new HashMap<String ,Object>();
public int compare(MapBean o1, MapBean o2) {

return o1.getMap().get("date")-o2.getMap().get("date");
}
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}

}
你可以根据特定属性排序。
List<MapBean > list

Collections.sort(list, new MapBean());排序
------解决方案--------------------

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