对象比较器

来源:互联网 发布:学琴屋软件怎么样 编辑:程序博客网 时间:2024/06/05 09:14

引子:

package 对象比较器;import java.util.Arrays;public class comparator {    public static void main(String[] args) {        int[] nums= {21,43,65,34,666};        Arrays.sort(nums);        for(int i:nums) {            System.out.println(i);        }        String[] names= {"abc","csd","esd","box"};        Arrays.sort(names);        for(String s:names) {            System.out.println(s);        }    }}

JAVA中用于对象排序的比较器Comparable接口和compareTo()方法

面向对象的三大特性:封装,继承,多态。JAVA中的比较器接口Comparable用于数组对象的排序,要使用此功能,必须让类继承自Comparable接口,重写compareTo(Object obj)方法。import java.util.*;class Person implements Comparable{private String name;private int age;private float score;public Person(String name,int age,float score){   this.name=name;   this.age=age;   this.score=score;   }   public String toString(){    return "姓名:"+this.name+", 年龄:"+this.age+", 成绩:"+this.score;    }    public int compareTo(Object obj){     Person p = (Person)obj;     if(p.score>this.score){      return 1;      }      else if(p.score<this.score){       return -1;       }       else{        if(p.age>this.age){         return 1;         }         else if(p.age<this.age){         return -1;        }         else{          return 0;          }        }     }}public class OODemo35{   public static void main(String []args){    Person p[] = new Person[5];    p[0] = new Person("张三 ",23,96);    p[1] = new Person("张三2",24,96);    p[2] = new Person("张三3",21,94);    p[3] = new Person("张三4",22,98);    p[4] = new Person("张三5",20,89);    Arrays.sort(p);    for(int x=0;x<p.length;x++){     System.out.println(p[x]);     }       }   }输出结果:姓名:张三4, 年龄:22, 成绩:98.0姓名:张三2, 年龄:24, 成绩:96.0姓名:张三 , 年龄:23, 成绩:96.0姓名:张三3, 年龄:21, 成绩:94.0姓名:张三5, 年龄:20, 成绩:89.0
原创粉丝点击