//一个实现了Comparable接口的类在一个Collection(集合)里是可以排序的,
//而排序的规则是按照你实现的Comparable里的抽象方法compareTo(Object o) 方法来决定的。
import java.util.Arrays;
//实现Comparable接口,使该类的对象可排序
@SuppressWarnings("unchecked")
public class TestComparable implements Comparable {
// 该类的属性i
private double i = Math.random();
// 实现Comparable接口的抽象方法,定义排序规则
public int compareTo(Object o) {
// 定义排序规则: TestComparable对象里的属性i大的则排序时比较"大"(排序靠后)
if (o instanceof TestComparable) {
if (i > ((TestComparable) o).i) {
return 1;
} else if(i < ((TestComparable) o).i){
return -1;
} else{
return 0;
}
} else {
// 非TestComparable对象与之比较,则抛出异常
throw new ClassCastException("Can't compare");
}
}
// 重载toString方法定义输出
public String toString() {
return "" + i;
}
// 测试
public static void main(String[] args) {
// 建立一个数组, 元素为3个TestComparable对象
TestComparable[] c = new TestComparable[] { new TestComparable(),
new TestComparable(), new TestComparable() };
// 排序前
System.out.println(Arrays.asList(c));
// 排序
Arrays.sort(c);
// 排序后
System.out.println(Arrays.asList(c));
}
}
java中comparable接口
最新推荐文章于 2022-09-10 22:06:08 发布