Comparable<T>泛型接口之实现按name或者age进行排序

 1 import java.util.*;
 2 public class Demo13{
 3     
 4     /*
 5     Arrays.sort(Object[])可以对任意数组进行排序,但待排序的元素必须实现Comparable<T>这个泛型接口    
 6     */
 7     
 8     public static void main(String[] args) throws Exception{
 9         String[] arr = {"Davi","Bob","Smith","Alice"};
10         //因为String本身已经实现了Comparable<String>接口,所以可以直接对String数组进行排序
11         Arrays.sort(arr);
12         System.out.println(Arrays.toString(arr));            
13         
14         Person[] arr2 =new Person[]{
15             new Person("Davi",38),
16             new Person("Bob",13),
17             new Person("Smith",24),
18             new Person("Alice",35)
19         };
20         
21         Arrays.sort(arr2);
22         System.out.println(Arrays.toString(arr2));            
23     }
24 }
25 
26 //自定义的Person类型实现Comparable<T>接口
27 class Person implements Comparable<Person>{
28     private String name;
29     private int age;
30     public Person(String name,int age){
31         this.name = name;
32         this.age = age;
33     }
34         
35     //重写Comparable<Person>接口
36     @Override
37     public int compareTo(Person other){
38         //使用String类重写好的comparaTo(String other)方法,name首字母依据字典序列来排列元素
39         return name.compareTo(other.name);
40     }
41     
42     public String toString(){
43         return "(name:" + name + ",age:" + age + ")";
44     }
45     
46 }

 1 import java.util.*;
 2 public class Demo13{
 3     
 4     /*
 5     Arrays.sort(Object[])可以对任意数组进行排序,但待排序的元素必须实现Comparable<T>这个泛型接口    
 6     */
 7     
 8     public static void main(String[] args) throws Exception{
 9         String[] arr = {"Davi","Bob","Smith","Alice"};
10         //因为String本身已经实现了Comparable<String>接口,所以可以直接对String数组进行排序
11         Arrays.sort(arr);
12         System.out.println(Arrays.toString(arr));    
13         
14         int[] arr1 = {38,13,24,35};
15         //因为Integer本身已经实现了Comparable<String>接口,所以可以直接对Integer数组或者int数组进行排序
16         Arrays.sort(arr1);
17         System.out.println(Arrays.toString(arr1));    
18 
19         
20         
21         Person[] arr2 =new Person[]{
22             new Person("Davi",38),
23             new Person("Bob",13),
24             new Person("Smith",24),
25             new Person("Alice",35)
26         };
27         
28         Arrays.sort(arr2);
29         System.out.println(Arrays.toString(arr2));            
30     }
31 }
32 
33 //自定义的Person类型实现Comparable<T>接口
34 class Person implements Comparable<Person>{
35     private String name;
36     private int age;
37     public Person(String name,int age){
38         this.name = name;
39         this.age = age;
40     }
41         
42     //重写Comparable<Person>接口
43     @Override
44     public int compareTo(Person other){
45         //使用String类重写好的comparaTo(String other)方法,name首字母依据字典序列来排列元素
46         //return name.compareTo(other.name);
47         
48         //使用Integer类重写好的comparaTo(Integer other)方法,age依据数字大小来排列元素
49         return new Integer(age).compareTo(other.age);
50     }
51     
52     public String toString(){
53         return "(name:" + name + ",age:" + age + ")";
54     }
55     
56 }

 

posted @ 2021-01-08 14:14  dog_IT  阅读(232)  评论(0编辑  收藏  举报