Comparable接口使用1

一个实现了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));
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值