Multimaps.index返回
ImmutableListMultimap,因此创建后将无法对其进行排序。但是,您可以先为您创建排序后的副本,
Iterable<MyObject>然后将其提供给
Multimap.index…
,以
ImmutableListMultimap使事情保持与给出的顺序相同。
public static ImmutableMultimap<Integer, MyObject> indexonScore(Iterable<MyObject> i) { List<MyObject> sorted = Ordering.natural().onResultOf(myObjectToScore()) .sortedCopy(i); return Multimaps.index(sorted, myObjectToScore());}另一个选择可能是创建一个
TreeMultimap并将
Ordering.arbitrary()其
Comparator用作值。



