因为MAP所有的子类都没有实现comparable和comparator接口,没有可用的,你可以把map封装成一个类之后实现排序接口。

解决方案 »

  1.   

    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 > listCollections.sort(list, new MapBean());排序
      

  2.   


    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"));
                }
            });
      

  3.   


    我表达的太不专业了,就是时间属性
    这个方法我是知道的,就如果我上面说的将List<Map<String,Object>>集合转换成一个List<Object>集合
    再在对中实现排序的接口,
    我中感觉这也挺麻烦的:
    要循环List<Map<String,Object>>集合将里面的Map<String,Map>集合转换成一个对象再添加到List<Object>集合中去。
      

  4.   


    我表达的太不专业了,就是时间属性
    这个方法我是知道的,就如果我上面说的将List<Map<String,Object>>集合转换成一个List<Object>集合
    再在对中实现排序的接口,
    我中感觉这也挺麻烦的:
    要循环List<Map<String,Object>>集合将里面的Map<String,Map>集合转换成一个对象再添加到List<Object>集合中去。5楼的可以 ,他这个是用了一个匿名内部类, 写的排序器 。你可以用 不用转换了