比较器

 1 public class Code_09_Comparator{
 2     public static class Student{
 3         public String name;
 4         public int id;
 5         public int age;
 6     public Student(String name,int id,int age){
 7         this.name=name;
 8         this.id=id;
 9         this.age=age;
10 }
11 }
12     public static class IdAscendingComparator imlements Comparator<Student>{//继承接口,接口内放置自己定义的想要比较的东西
13         @override
14         public int compara (Student 01,Student 02){
15         return 01.id-02.id;//如果01的值小,减完就是负数;02的值小减完就是正数;相等减完是0
16         }
17     public static class IdDescendingComparator implements Comparator<Student>{
18     @overrid
19     public int compare(Student 01,Student 02){
20         return 02.id-01.id;//降序排列id
21 }
22     public static class AgeAscendingComparators Comparator<Student>{
23     @override
24     public int compare (Stuent 01,Student 02){
25         return 01.age-02.age;//升序排列age
26 }
27     public static class AgeDescendingComparator implements Comparator<Student>{
28     @override
29      public int compare(Student 01,Student 02){
30         return 02.age-01.age;//降序排列age
31 }
32     public static void printStudents (Student[] Students){//输出函数
33     for(Student student : students){
34     System.out.println("Name:"+student.name+",Id:"+student.id+".Age:"+student.age);}
35     System.out.println("============");}
36     public static void main(String[] args){
37         Student student1 =new Student("A",1,23);
38         Student student2 =new Student("B",2,21);
39         Student student3 =new Student("C",3,22);
40 
41         //建立数组,把学生1,2,3放进数组
42     Student[] students =new Student[]{student3,student2,student1};
43      printStudents(students);
44      Arrays.sort(students new IdAscendingComparator());//调用系统函数,①添加students有意义情况:数组,自己定义的比较器②单纯调用sort(students)按照内存地址排序(无意义),例如:基础类型根据数值从小到大排序。
45      printStudents(students);
46      Arrays.sort(students new IdDescendingComparator());
47      printStudents(students);
48      Arrays.sort(students new AgeScendingComparator());
49      printStudents(students);
50      Arrays.sort(students new AgeScendingComparator());
51      printStudents(students);
52       
53 /*Integer[] arr={3,2,4,1,0}; Arrarys.sort(arr,newMycomp());printArray(arr);*/

 

posted on 2019-02-26 09:39  Edit-s  阅读(93)  评论(0)    收藏  举报

导航