按降序(反向)顺序对 TreeMultimap 进行排序
Sort a TreeMultimap in descending (reversed) order
输出为:热门密码:{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);
您可以在创建 TreeMultimap
时设置一个键比较器。您可以使用 Ordering.natural()
and then call 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]}
。
这就是我发现的对我有用的东西
SortedSetMultimap<String, String> multiMap = TreeMultimap.create(
Comparator.reverseOrder(), // Key sorting
(o1, o2) -> 0 // Value sorting
);
输出为:热门密码:{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);
您可以在创建 TreeMultimap
时设置一个键比较器。您可以使用 Ordering.natural()
and then call 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]}
。
这就是我发现的对我有用的东西
SortedSetMultimap<String, String> multiMap = TreeMultimap.create(
Comparator.reverseOrder(), // Key sorting
(o1, o2) -> 0 // Value sorting
);