运行完全没问题,但是编译警告,我感觉和泛型有关,但不知道该怎么改

运行完全没问题,但是编译警告,我感觉和泛型有关,但不知道该怎么改

问题描述:

题目

选择合适的Map集合保存5位学员的学号和姓名,然后按学号的自然顺序的倒序将这些键值对一一打印出来。要求如下:
(1)创建TreeMap集合。
(2)使用put()方法将学号和姓名存储到Map中,
存的时候可以打乱顺序观察排序后的效果。
(3)使用map.keySet()获取键的Set集合。
(4)使用Set集合的iterator()方法获得Iterator对象用于迭代键。
(5)使用Map集合的get()方法获取键所对应的值。

代码:

import java.util.*;
public class Test04
{
    public static void main(String[] args)
    {
        TreeMap<String,String> map=new TreeMap<>(new MyComparator());
        map.put("1","Lucy");
        map.put("4","Aimee");
        map.put("2","John");
        map.put("5","Amanda");
        map.put("3","Smith");
        Set<String> set=map.keySet();
        Iterator<String> it=set.iterator();
        while(it.hasNext())
        {
            String key=it.next();
            System.out.println(key+":"+map.get(key));
        }
    }
}
class MyComparator implements Comparator
{
    public int compare(Object obj1,Object obj2)
    {
        String ele1=(String)obj1;
        String ele2=(String)obj2;
        return ele2.compareTo(ele1);
    }
}

运行结果及报错内容 :
注: Test04.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

我希望编译不出警告,这个程序运行没有问题,请问需要怎么改?

改一下


class MyComparator implements Comparator<String>
{
    public int compare(String ele1,String ele2)
    {
        return ele2.compareTo(ele1);
    }
}

new TreeMap时构造函数的参数删除。