如何按相反顺序排序谷歌果 Multimap 的键?

6

我对Guava API比较新,正在尝试将MultiMap的键按照相反顺序或降序值进行排序。我是通过以下方式初始化Map

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

这将按升序对键进行排序。例如:

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}]

我尝试使用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个回答

9
尝试使用 treeKeys(Comparator) 方法:
MultimapBuilder.treeKeys(DESC_ORDER).arrayListValues().build();

非常感谢,我不知道我怎么会错过它 :-) - Shamik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接