Java 按降序(反转)对树多重映射进行排序

Java 按降序(反转)对树多重映射进行排序,java,collections,maps,guava,multimap,Java,Collections,Maps,Guava,Multimap,输出为:顶部夹码:{1=[4566008456666],2=[560089],4=[45609856789]} 我希望它们的顺序是:{4=[45609856789],2=[560089],1=[45600845660045666]} HashMap<Integer, Integer> totalCustomersByPin = new HashMap<Integer, Integer>(); TreeMultimap<Integer, Integer> tot

输出为:顶部夹码:
{1=[4566008456666],2=[560089],4=[45609856789]}

我希望它们的顺序是:
{4=[45609856789],2=[560089],1=[45600845660045666]}

HashMap<Integer, Integer> totalCustomersByPin = new HashMap<Integer, Integer>();
TreeMultimap<Integer, Integer> totalDeliveriesToPin = TreeMultimap.create();
Iterator<Entry<Integer, Integer>> iterator = totalCustomersByPin.entrySet().iterator();

while (iterator.hasNext()) {
    Entry<Integer, Integer> pair = iterator.next();
    totalDeliveriesToPin.put(pair.getValue(), pair.getKey());
}
System.out.println("Top pincodes:" + totalDeliveriesToPin);
HashMap TotalCustomerByPin=new HashMap();
TreeMultimap totalDeliveriesToPin=TreeMultimap.create();
迭代器迭代器=TotalCustomerByPin.entrySet().Iterator();
while(iterator.hasNext()){
条目对=迭代器.next();
totalDeliveriesToPin.put(pair.getValue(),pair.getKey());
}
System.out.println(“顶部夹码:“+TotalDeliveriesStopin”);

您可以在创建
TreeMultimap
时设置键比较器。您可以使用,然后调用按键的自然顺序的相反顺序对键进行排序

示例代码:

public static void main(String[] args) {
    TreeMultimap<Integer, Integer> map = TreeMultimap.create(Ordering.natural().reverse(), Ordering.natural());
    map.put(1, 456008);
    map.put(1, 456600);
    map.put(1, 456666);
    map.put(2, 560089);
    map.put(4, 456098);
    map.put(4, 567789);
    System.out.println(map);
}
publicstaticvoidmain(字符串[]args){
TreeMultimap=TreeMultimap.create(Ordering.natural().reverse(),Ordering.natural());
地图放置(1456008);
地图放置(1456600);
地图放置(1456666);
地图放置(2560089);
地图放置(4456098);
地图放置(4567789);
系统输出打印项次(map);
}

这将打印:
{4=[45609856789],2=[560089],1=[456008456600456666]}

这就是我发现的真正对我有用的东西

  SortedSetMultimap<String, String> multiMap = TreeMultimap.create(
                Comparator.reverseOrder(), // Key sorting
                (o1, o2) -> 0              // Value sorting
        );
SortedSetMultimap multiMap=TreeMultimap.create(
Comparator.reverseOrder(),//键排序
(o1,o2)->0//值排序
);

您是否总是需要按此顺序或有时按相反顺序使用它们有时不需要?可能重复@guy和RHA:这是来自Guava的
多地图
,而不是普通的Java
地图
@Dici怎么办?或