Comparable接口是一个泛型接口,定义如下,实现接口的compareTo方法可以用Array.sort进行排序。大于,等于,小于分别为正,0,负。
public interface Comparable<E>{
public int compareTo(E o);
}
在数值类型的包装类实现compareTo方法,(一晚上没实现!!!生气)
创建一个类ComparableRectangle继承自Rectangle,注意改写compareTo方法
public class ComparableRectangle extends CopyRectangle implements Comparable<ComparableRectangle>{
//构造方法
public ComparableRectangle(double weight,double height) {
super(weight,height);
}
// public java.lang.String toString() {
// return super.toString()+"面积:"+this.getArea();
//}
@Override
public int compareTo(ComparableRectangle o) {
if(getArea()>o.getArea())
return 1;
else if(getArea()<o.getArea())
return -1;
else
return 0;
}
}
之后创建了一个测试类,这个测试类一直找不到main方法,可能是因为包里其他程序有错误,最终通过面积对矩形对象排序找不到main方法
package interface11;
import java.util.Arrays;
public class testRectangle {
public static void main(String[] args) {
ComparableRectangle[] myrectangles = {
new ComparableRectangle(6,3),
new ComparableRectangle(3,5),
new ComparableRectangle(3,9.8)
};
//ComparableRectangle继承接口的所有常量,并实现接口的方法
//实现compareTo方法,java API的java.util.Arrays.sort(Object[])
//方法就可以使用compareTo方法对数组中的对象进行比较和排序
Arrays.sort(myrectangles);
for(CopyRectangle rectangle : myrectangles){
System.out.println(rectangle+"面积: "+rectangle.getArea());
System.out.println();
}
}
}
博客探讨了Comparable接口的使用,特别是在数值类型包装类和自定义类中的应用。通过实现compareTo方法,可以使用Array.sort进行对象排序。文章中提到了在ComparableRectangle类中重写此方法,并尝试通过面积对矩形对象排序,但在测试类中遇到了找不到main方法的问题,可能是由于包内其他程序错误导致。
581

被折叠的 条评论
为什么被折叠?



