我有Guava图书馆的Map。我只想按键排序。我试过:
Multimap<String, MyObj> sortedMultiMap =
TreeMultimap.create(Ordering.from(new Comparator<String>() {
@Override
public int compare(String lhs, String rhs) {
//my comparison here
}
}), Ordering.natural());//i want not to sort values at all,MyObj doesn't implement Comparable
sortedMultiMap.putAll(notSortedMultiMap);
但正如您所看到的,treemultimap.create方法有两个参数-键和值的比较器。如何仅按键对多重Map进行排序?
2条答案
按热度按时间798qvoo81#
更新后的答案从路易斯瓦瑟曼即使我原来的答案解决了问题,并回答了问题,我认为这是更优雅的解决办法。
你可以用
Ordering.arbitrary()
作为第二个参数,它不需要对象来实现Comparable
.如果需要插入顺序,可以使用
ecfsfe2w2#
使用
MultimapBuilder
: