这个compareTo接口程序没看懂,请帮忙。 你本身这个类调用这个方法需要new对象吧,前一个salary就是他的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 主动调用该方法的实例化Employee对象就是“前一个”传入的实例化Employee对象参数就是“后一个” public int compareTo(Employee other) { if(salary < other.salary) { return -1; } if(salary > other.salary) { return 1; } return 0; }这边的salary其实是隐藏了一个关键字的就是this,其实就是this.salary,this指的是当前调用这个方法的对象,如果要明白如果调用compareTo方法的话,你看下Array.sort的源码吧 public int compareTo(Employee other) { if(this.salary < other.salary) { return -1; } if(this.salary > other.salary) { return 1; } return 0; } public int compareTo(Employee other) { if(this.salary < other.salary) { return -1; } if(this.salary > other.salary) { return 1; } return 0; } sort方法里面是for循环,你看一下调用就明白了private static void sort1(int x[], int off, int len) { // Insertion sort on smallest arrays if (len < 7) { for (int i=off; i<len+off; i++) for (int j=i; j>off && x[j-1]>x[j]; j--) swap(x, j, j-1); return; }是通过前一个和后一个进行比较,而你的实体类里面的coampareTo只是实现两个实体的比较,真正的逻辑在sort里面 楼主想要明白compareTo方法,需要了解的知识有这些:1.Comparable接口2.this关键字3.compareTo()方法的参数和返回值意义如果搞清楚这三点,你肯定就知道原因了。然后你可以再了解一下Comparator这个类,用它可以实现不同的排序方式。当然,是通过内部类实现的。 意思是说this如果是staff[0],other就是staff[1]吗? 如果仅仅是个int数组排序,像c语言一样,我是明白的,只是这个程序的那块我实现没看出逻辑性,所以有点不明就里。 java做一个计算器怎样实现混合运算(优先级) 如何将文件里的数据用IO流写入ArrayList容器里 菜鸟新问:望详解! 关于synchronized的4个判断,望指教 关于JAVA UNICODE的转换问题 JTable中如何实现斑马线。 请问如何修改JVM参数 输入、输出读取方式 如何用Map实现这个需求 让我看一眼sjcd的程序设计题,小弟把全部的600分双手奉上。谢谢。谢谢。 找不到符号 请教一个java方法参数传入的问题
传入的实例化Employee对象参数就是“后一个”
{
if(salary < other.salary)
{
return -1;
}
if(salary > other.salary)
{
return 1;
}
return 0;
}
这边的salary其实是隐藏了一个关键字的就是this,其实就是this.salary,this指的是当前调用这个方法的对象,如果要明白如果调用compareTo方法的话,你看下Array.sort的源码吧
{
if(this.salary < other.salary)
{
return -1;
}
if(this.salary > other.salary)
{
return 1;
}
return 0;
}
{
if(this.salary < other.salary)
{
return -1;
}
if(this.salary > other.salary)
{
return 1;
}
return 0;
}
// Insertion sort on smallest arrays
if (len < 7) {
for (int i=off; i<len+off; i++)
for (int j=i; j>off && x[j-1]>x[j]; j--)
swap(x, j, j-1);
return;
}是通过前一个和后一个进行比较,而你的实体类里面的coampareTo只是实现两个实体的比较,真正的逻辑在sort里面
2.this关键字
3.compareTo()方法的参数和返回值意义如果搞清楚这三点,你肯定就知道原因了。然后你可以再了解一下Comparator这个类,用它可以实现不同的排序方式。当然,是通过内部类实现的。