如何以相反的顺序对番石榴Multimap键进行排序?

时间:2016-02-16 07:20:28

标签: java dictionary guava multimap

我对Guava API相当新,并试图按相反顺序或降序值对MultiMap的键进行排序。我正在以下列方式发起Map

ListMultimap<Date, Map<String, String>> listMultimap = MultimapBuilder.treeKeys().arrayListValues().build();

这会按升序对键进行排序。 E.g:

List multi map iteration: key -->Fri Jan 01 00:00:00 PST 2016   values -->[{test2=testval2}, {test3=testval3}]
List multi map iteration: key -->Sun Jan 01 00:00:00 PST 2017   values -->[{test1=testval1}]
List multi map iteration: key -->Mon Jan 01 00:00:00 PST 2018   values -->[{test0=testval0}]
List multi map iteration: key -->Tue Jan 01 00:00:00 PST 2019   values -->[{test4=testval4}]

我尝试使用Comparator创建自定义日期TreeMultiMap,但还没有找到办法。这在语法上并不正确,只是试图证明这个想法。

static final Comparator<Date> DESC_ORDER = new Comparator<Date>() {
    public int compare(Date e1, Date e2) { 
        return e2.compareTo(e1);
    }
};

SortedSetMultimap<Date, Map<String, String>> treeMultimap = TreeMultimap.create(DESC_ORDER);

任何指针都将受到赞赏。

1 个答案:

答案 0 :(得分:9)

尝试使用treeKeys(Comparator)

MultimapBuilder.treeKeys(DESC_ORDER).arrayListValues().build();