HashMap的Value排序问题

问题遇到的现象和发生背景
public class Computer {//创建一个电脑类
    String name;
    int price;
    Computer(String name,int price){
        this.name=name;
        this.price=price;
    };
    void info(){
        System.out.println();
    };

}

public class Hash_Map {
    public static void main(String[] args) {

        HashMap<String,Computer> hashmap=new HashMap<String,Computer>();//Computer类里有一个String name 和int price变量
        Computer c1=new Computer("联想", 8999);
        Computer c2=new Computer("苹果", 9999);
        Computer c3=new Computer("惠普", 3999);
        Computer c4=new Computer("华硕", 4999);
        Computer c5=new Computer("戴尔", 1999);

        hashmap.put("1",c1);
        hashmap.put("2",c2);
        hashmap.put("3",c3);
        hashmap.put("4",c4);
        hashmap.put("5",c5);


        HashMap<String,Integer> hashmap1=new HashMap<String,Integer>();
        hashmap1.put("1", c1.price);
        hashmap1.put("2", c2.price);
        hashmap1.put("3", c3.price);
        hashmap1.put("4", c4.price);
        hashmap1.put("5", c5.price);
     // 创建新的双链集合 只有int price属性
//不想创建这个集合,直接根据HashMap<String,Computer> hashmap=new HashMap<String,Computer>();Computer里的int 排序




        Set<Map.Entry<String, Integer>> entrySet= hashmap1.entrySet();

        List<Map.Entry<String,Integer>> list=new ArrayList<>(hashmap1.entrySet());//怎样将Integer替换成object的对象
//然后用下列方法在<String,Object>其中根据object的int price值排序

       Collections.sort(list, new Comparator<Map.Entry<String, Integer>>()
       {
           @Override                  //改成Comupter↓
           public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
               return o1.getValue()- o2.getValue();


           }
       });//给这个list集合从小到大排序
            for (Map.Entry s : list) 
       {

        System.out.println(s.getKey()+"--"+s.getValue());//打印键值和price值

       }

    System.out.println("最低的电脑售价为:"+list.get(0).getValue());

    }
}

运行结果及报错内容
我的解答思路和尝试过的方法

Collections.sort(list, new Comparator<Map.Entry<String, Integer>>()
{
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getValue()- o2.getValue();

       }
   });

在代码Collects.sort()的代码中 将new Comparator<Map.Entry<String, Integer>>中的Integer改成Object一个电脑对象,请问怎么根据Computer里的value price排序呢?
没有做出来,请各位仁兄解答一下

我想要达到的结果

现在我不想创建一个<String ,Integer>的新集合 在创建HashMap<String,Computer> hashmap=new HashMap<String,Computer>();
的条件下,直接用Set<Map.Entry<String, Object(就是Computer)>> entrySet= hashmap1.entrySet();
List<Map.Entry<String,Object(就是Computer)>> list=new ArrayList<>(hashmap1.entrySet());的代码用Collects.sort()方法排序

然后打印Object computer的price的最小值;

为啥不把computer直接放 list里用对象属性排序 非要搞个 hashmap干啥

用linkhashmap