关于Comparator接口的疑问

Pro_Vida Pro_Vida 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
为什么在以下代码中必须实现Comparable接口才能用Comparator接口进行排序?
Comparable接口和Comparator接口有什么关系吗?
import java.util.*;
class TreeSetTest
{
public static void main(String[] args)
{
TreeSet<Object> ts=new TreeSet<Object>();
ts.add(new MyStudents(2,"Vida"));
ts.add(new MyStudents(4,"Lillian"));
ts.add(new MyStudents(1,"Chaner"));
ts.add(new MyStudents(2,"Vida"));
Iterator it=ts.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}

}

}

class MyStudents implements Comparable<Object>
{
int number;
String name;
MyStudents(int number,String name)
{
this.number=number;
this.name=name;
}
public String toString()
{
return "The Student's information is: Number="+number+" name="+name;
}
public int compareTo(Object o)
{
MyStudents mst=(MyStudents)o;
return number > mst.number ? 1 : (number==mst.number ? 0 : -1);
}
class MyStudentsComparator implements Comparator<Object>
{
public int compare(Object o1,Object o2)
{
MyStudents mst1=(MyStudents)o1;
MyStudents mst2=(MyStudents)o2;
int result=mst1.number>mst2.number?1:(mst1.number==mst2.number?0:-1);
if(result==0)
{
return mst1.name.compareTo(mst2.name);
}
return result;

}
}

}
...全文
评论 1
收藏 已收藏
分享
返回顶部
Pro_Vida
Java SE 62,620 成员 307,251 内容