Вы не можете напрямую отсортировать хэш-карту.Что вам нужно сделать, это переместить данные вашей карты в список и отсортировать этот список по цене.
List<Map.Entry<Integer, PriceVo >> list = new ArrayList<Map.Entry<Integer, PriceVo >>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, PriceVo >>() {
@Override
public int compare(Map.Entry<Integer, PriceVo > price1,
Map.Entry<Integer, PriceVo > price2) {
return price1.getValue().price.compareTo(price2.getValue().price);
}
}
);
Вы даже можете использовать карту дерева, напрямую передать ему компаратор и отсортировать, так что будетнет необходимости копировать данные в другой список.