想要根据对象键对地图进行排序

时间:2014-09-01 17:51:40

标签: java sorting map

我有一张地图,他的钥​​匙和价值就像

一样
    List<AppointmentRequest> list=AppointmentRequest.findAllAppointmentRequests();
    for(AppointmentRequest a:list){
        Store store=Store.findStore(a.getStoreId());
        map.put(AppointmentRequest.findAppointmentRequest(a.getId()),store);

    }

AppointmentRequest包含日期列 现在我想根据这一栏对这张地图进行排序,以便在jsp页面中显示,有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

使用TreeMap

  

基于红黑树的NavigableMap实现。地图根据其键的自然顺序进行排序,或者根据使用的构造函数在地图创建时提供的比较器进行排序。

为构造函数提供Comparator,以便按日期列对键进行排序。

看起来像这样:

Map<AppointmentRequest,Store> map = 
    new TreeMap(new Comparator<? super AppointmentRequest> comparator {
        int compare(AppointmentRequest o1, AppointmentRequest o2) {
            // return -1,0 or 1 based on the relative order of o1 and o2
        }
    });