我有一个ImmutableMultimap,我需要将其值显示为排序列表。以下代码有效,但似乎效率很低。我正在寻找一种“预先”的方式来设置get(value)方法调用,以便始终返回一个已排序的列表。例如,我没有看到类似于ImmutableSortedMultimap的类,这将使得这一切变得明显。如何完成此操作以使get(value)调用始终返回已排序的ImmutableCollection?
private ImmutableMultimap<String, String> FIELDS_TO_TYPES =
ProfileTypeManager.getFieldsToTypes();
...
String value = getDataSourceFieldId();
ImmutableCollection<String> types = FIELDS_TO_TYPES.get( value );
display = String.format( "%s %s", display, Ordering.natural().sortedCopy( types ) );
答案 0 :(得分:2)
当您创建ImmutableMultimap
时,ImmutableMultimap.Builder
有一个orderValuesBy
方法,所以您可以执行类似
ImmutableMultimap.Builder<String, String> builder = ImmutableMultimap.builder()
.orderValuesBy(comparator);
// put values in builder