输出为:顶部密码:{1=[456008, 456600, 456666], 2=[560089], 4=[456098, 567789]}
我希望他们按此顺序排列:{4=[456098,567789], 2=[560089], 1=[456008, 456600, 456666]}
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);
答案 0 :(得分:8)
您可以在创建TreeMultimap
时设置关键比较器。您可以使用Ordering.natural()
然后调用reverse()
按照自然顺序的相反顺序对密钥进行排序。
示例代码:
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);
}
这将打印:{4=[456098, 567789], 2=[560089], 1=[456008, 456600, 456666]}
。
答案 1 :(得分:0)
这是我发现对我真正有用的东西
SortedSetMultimap<String, String> multiMap = TreeMultimap.create(
Comparator.reverseOrder(), // Key sorting
(o1, o2) -> 0 // Value sorting
);