我想根据值订购地图(A,Double)。
Function<Map.Entry<A, Double>, Double> getSimFunction = new Function<Map.Entry<A, Double>, Double>() {
public Double apply(Map.Entry<A, Double> entry) {
return entry.getValue();
}
};
final Ordering<Map.Entry<A, Double>> entryOrdering = Ordering.natural().onResultOf(getSimFunction);
ImmutableSortedMap.orderedBy(entryOrdering).putAll(....).build();
如何根据排序结果或基于map.keyset()的sortedset创建新的sortedMap?
答案 0 :(得分:0)
这个怎么样?
ImmutableMap.Builder<A, Double> builder = ImmutableMap.builder();
for (Map.Entry<A, Double> entry : entryOrdering.sortedCopy(unsortedMap.entrySet())) {
builder.put(entry.getKey(), entry.getValue());
}
ImmutableMap<A,Double> sortedMap = builder.build();