java map 根据 map的value值进行排序

 1     //根据销量排行查询
 2     public void queryGoodsByHotCount(){
 3         //将map集合键和值封装到entry对象中  然后转换成set集合
 4         Set<Entry<Integer,Goods>>setGoods=mapGoods.entrySet();
 5         //将set集合转成list集合
 6         List<Entry<Integer,Goods>> listGoods=new ArrayList<>();
 7         listGoods.addAll(setGoods);
 8         
 9         //类比较器   根据销量进行排序
10         Collections.sort(listGoods,new Comparator<Entry<Integer,Goods>>() {
11             @Override
12             public int compare(Entry<Integer, Goods> entry1, Entry<Integer, Goods> entry2){
13                 //顺序排列。。。
14                 return entry1.getValue().getgHotCount()-entry2.getValue().getgHotCount();
15             }
16         });
17         //进行打印
18         System.out.println("编号\t商品名称\t商品数量\t商品销量\t商品的价格");
19         for(Entry<Integer,Goods> entry:listGoods){
20             System.out.println(entry.getValue());
21         }
22     }
View Code