JAVA Comparable接口应用(注释)

来源:互联网 发布:js sms body 中文 编辑:程序博客网 时间:2024/06/06 06:36

package com;

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; 
    } 
  } 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)); 
 } 
}

原创粉丝点击