多个对象进行排序时,需要根据对象的什么属性来排序。
例如,同样都是人,可以根据人的身高排序,可以根据人的年龄排序。因此,当对多个人进行排序时,就要事先确定好根据人的什么属性来排序。
使Comparable 接口,就是用来做这个的。
示例代码:
import java.util.Arrays;class Man2 implements Comparable{ //创建一个Man2类,同时让这个类实现Comparable接口int age;//定义Man2类的三个普通属性int id;String name; public Man2 (int age, String name){//定义Man2类的构造器super();this.age = age;this.name = name;}public String toString(){//重写toString,这样后面在使用它输出时就只输出名字return this.name;}public int compareTo (Object o) {//实现Comparable接口里要的方法,定义清楚以什么属性来比较//int 表示返回值是整数型Man2 man2 = (Man2) o;//当Arrays.sort(manyMan)在底层调用compareto方法时,无论传进来什么对象//都强制转换成Man2类型if(this.age < man2.age){return -1;}if(this.age >man2.age){return 1;}return 0;}
}public class Test003 {public static void main(String[] args) {Man2[] manyMan = {new Man2(18,"张三"),new Man2(60,"李四"),new Man2(10,"王五"),};System.out.println(Arrays.toString(manyMan));Arrays.sort(manyMan);System.out.println(Arrays.toString(manyMan));}}
运行结果: