public class TestMethodRef { //数组引用 @Test public void test(){ Person[] rosterAsArray = new Person[] { new Person(100,"zangliang"), new Person(1,"anan"), new Person(120,"ananma") }; // //使用最原始的方法 // Arrays.sort(rosterAsArray, new PersonAgeComparator()); // //使用lamda // Arrays.sort(rosterAsArray, // (Person a, Person b) -> { // return a.age.compareTo(b.age); // } // ); // //这种用于比较两个Person实例的出生日期的方法已经存在Person.compareByAge // Arrays.sort(rosterAsArray, // (a, b) -> Person.compareByAge(a, b) // ); // //可以使用方法引用代替lambda表达式 Arrays.sort(rosterAsArray, Person::compareByAge); for (Person person : rosterAsArray) { System.out.println(person.name); } } } class PersonAgeComparator implements Comparator<Person> { @Override public int compare(Person a, Person b) { return a.age.compareTo(b.age); } } class Person { public enum Sex { MALE, FEMALE } public Person(Integer age,String name) { this.age=age; this.name=name; } String name; Calendar birthday; Sex gender; String emailAddress; Integer age; public int getAge() { return age; } public Calendar getBirthday() { return birthday; } public static int compareByAge(Person a, Person b) { return a.age.compareTo(b.age); }}
对象数组的排序的四种方法
最新推荐文章于 2023-03-01 14:42:23 发布