Comparable接口只有一个方法
int compareTo(T o)// 返回-1、0、1分别一个对象表示小于、等于和大于指定对象
package com.jtlyuan;
import java.lang.reflect.Array; import java.util.Arrays;
public class Person implements Comparable<Person> { int age; String name;
@Override public String toString() { return "Person [age=" + age + ", name=" + name + "]"; }
public Person(int age, String name) { super(); this.age = age; this.name = name; } @Override public int compareTo(Person o) { if(this.age>o.age){ return 1; }else if(this.age<o.age){ return -1; }else{ return 0; } } private static void print(Person[] array) { for(int i=0;i<array.length;i++){ System.out.println(array[i]); } } public static void main(String[] args) { Person p1 = new Person(18,"梁任元"); Person p2 = new Person(13,"我爱你"); Person p3 = new Person(11,"人人网"); Person p4 = new Person(188,"钟国生"); Person p5 = new Person(1,"刘德才"); Person p6 = new Person(1,"张大侠"); Person p7 = new Person(4,"李大嘴"); Person[] array ={p1,p2,p3,p4,p5,p6,p7}; System.out.println("*************排序前************"); print(array); Arrays.sort(array); System.out.println("*************排序后************"); print(array); } }/* *************排序前************ Person [age=18, name=梁任元] Person [age=13, name=我爱你] Person [age=11, name=人人网] Person [age=188, name=钟国生] Person [age=1, name=刘德才] Person [age=1, name=张大侠] Person [age=4, name=李大嘴] *************排序后************ Person [age=1, name=刘德才] Person [age=1, name=张大侠] Person [age=4, name=李大嘴] Person [age=11, name=人人网] Person [age=13, name=我爱你] Person [age=18, name=梁任元] Person [age=188, name=钟国生] */
|
Comparable的工作原理:
实际上,很多类都实现了Comparable接口。用于对象之间的比较