按从高到低的值对哈希图进行排序

我正在尝试对具有从高到低的值的结构的哈希图进行排序。

我在下面创建了一个函数来对数据进行排序。

public static void SortDataHighToLow (Map <String, Integer> UnsortedMap){
    List <Integer> list = new ArrayList(UnsortedMap.keySet());
    Collections.sort(list,new Comparator <Integer>(){

        @Override
        public int compare(Integer arg0, Integer arg1) {

            return arg0-arg1;
        }
    });

    Map <String, Integer> sortedMap = new LinkedHashMap<>();

    for (Integer keys: list){
        sortedMap.put(UnsortedMap.toString(), keys);
    }

    System.out.println(sortedMap);
}

我收到以下错误:

线程“主”中的异常java.lang.ClassCastException:无法将类java.lang.String强制转换为类java.lang.Integer(java.lang.String和java.lang.Integer在加载程序“ bootstrap”的模块java.base中')

我认为我的错误是由上述的for()引起的,导致我无法读取Key值。

我应该做些什么调整?

谢谢您的帮助。