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 }
![]()