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 }