谁能解释一下java的Comparable接口啊?

来源:百度知道 编辑:UC知道 时间:2024/06/05 09:09:37
这个接口只是用来给非int型如boolean,character,string,inteeger,double排序的吗?一个string类型比如字母又怎么排序呢,compareTo方法必须要重写吗?问题比较多,对这个接口比较迷惑,希望高手指点

我转别人的你自己看看,写的不错

一个实现了Comparable接口的类在一个Collection(集合)里是可以排序的,而排序的规则是按照你实现的Comparable里的抽象方法compareTo(Object o) 方法来决定的。

我写了一个例子,自己看吧:

/*
* Created on 2006-1-8, by handpower
*/
package study.others;

import java.util.Arrays;

//实现Comparable接口,使该类的对象可排序
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 {
return -1;
}
return 0;
} else {
//非TestComparable对象与之比较,则抛出异常
throw new ClassCastException("Can't compare");
}
}

//重载toString方法定义输出
public String toString() {
return ""+i;
}

//测试 <