为了找到一种更简单的方法来获取ImmutableMultimap <string,string =“”>得到返回已排序的</string,>

时间:2013-12-18 22:52:10

标签: java guava

我有一个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 ) );

1 个答案:

答案 0 :(得分:2)

当您创建ImmutableMultimap时,ImmutableMultimap.Builder有一个orderValuesBy方法,所以您可以执行类似

的操作
ImmutableMultimap.Builder<String, String> builder = ImmutableMultimap.builder()
   .orderValuesBy(comparator);
// put values in builder