упорядочение коллекций Google по значениям карты - PullRequest
2 голосов
/ 23 мая 2010

Я хотел бы заказать карту (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();

Как я могу создать новую sortedMap на основе результатов заказа или sortedset на основе map.keyset ()?

1 Ответ

0 голосов
/ 21 марта 2014

Как насчет этого?

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...