一个实现了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; } //测试 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)); } }
Comparable接口使用1
最新推荐文章于 2021-05-24 17:26:32 发布