求教:关于CompareTo的一个问题
大家先看代码:
我的问题是:利用sort排序时,如何调用Compareto方法实现的
还有,在如下覆写的Compareto方法中,当前对象数组是怎么传递的,this.score 和stu.score是怎么取值的,返回-1,0,1分别代表小于 等于 大于 那么返回的这些数字是怎么比较的呢?谢谢各位啦!
public int compareTo(Student stu) {
if(this.score>stu.score){
return -1;
}else if(this.score<stu.score){
return 1;
}else{
if(this.age>stu.age){
return 1;
}else if(this.age<stu.age){
return -1;
}else{
return 0;
}
}
class Student implements Comparable<Student>{
private String name;
private int age;
private float score;
public Student(String name,int age,float score){
this.name=name;
this.age=age;
this.score=score;
}
public String toString(){
return name+"\t\t"+age+"\t\t"+score;
}
public int compareTo(Student stu) {
if(this.score>stu.score){
return -1;
}else if(this.score<stu.score){
return 1;
}else{
if(this.age>stu.age){
return 1;
}else if(this.age<stu.age){
return -1;
}else{
return 0;
}
}
}
}
public class ComparableDemo01 {
public static void main(String[] args) {
Student stu[]={new Student("张三",20,90.0f),new Student("李四",22,90.0f),new Student("找刘",20,70.0f)};
java.util.Arrays.sort(stu);
for(int i=0;i<stu.length;i++){
System.out.println(stu[i]);
}
}
}
我的问题是:利用sort排序时,如何调用Compareto方法实现的
还有,在如下覆写的Compareto方法中,当前对象数组是怎么传递的,this.score 和stu.score是怎么取值的,返回-1,0,1分别代表小于 等于 大于 那么返回的这些数字是怎么比较的呢?谢谢各位啦!
public int compareTo(Student stu) {
if(this.score>stu.score){
return -1;
}else if(this.score<stu.score){
return 1;
}else{
if(this.age>stu.age){
return 1;
}else if(this.age<stu.age){
return -1;
}else{
return 0;
}
}
...全文
相关推荐
String类下compareTo()与compare()方法比较
主要介绍了String类下compareTo()与compare()方法比较的相关资料,需要的朋友可以参考下
compareTo用法
compareTo用法compareTo用法compareTo用法compareTo用法compareTo用法compareTo用法compareTo用法
关于重写equals,hashcode以及compareTo方法!
关于重写equals,hashcode以及compareTo方法!
java源码解析之String类的compareTo(String otherString)方法
主要给大家介绍了关于java源码解析之String类的compareTo(String otherString)方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
详解java中保持compareTo和equals同步
主要介绍了详解java中保持compareTo和equals同步的相关资料,需要的朋友可以参考下


Java SE
