diff --git a/src/class40/Demo1.java b/src/class40/Demo1.java new file mode 100644 index 0000000..b7310d1 --- /dev/null +++ b/src/class40/Demo1.java @@ -0,0 +1,21 @@ +package class40; + +import java.util.Arrays; + +public class Demo1 { + public static void main(String[] args) { + Student[] students = new Student[6]; + students[0] = new Student("般素素", 35, 171.5, '女'); + students[1] = new Student("杨幂", 28, 168.5, '女'); + students[2] = new Student("张无忌", 25, 181.5, '男'); + students[3] = new Student("小昭", 19, 165.5, '女'); + students[4] = new Student("赵敏", 27, 167.5, '女'); + students[5] = new Student("刘亦菲", 36, 168, '女'); + +// Arrays.sort(students,(o1, o2)-> o1.getAge()-o2.getAge()); +// +// Arrays.sort(students , ((o1, o2) -> Student.compareByAge(o1, o2))); + + Arrays.sort(students, Student::compareByAge);//静态方法引用,简化lambda表达式 + } +} diff --git a/src/class40/Demo2.java b/src/class40/Demo2.java new file mode 100644 index 0000000..5b5255d --- /dev/null +++ b/src/class40/Demo2.java @@ -0,0 +1,23 @@ +package class40; + +import java.util.Arrays; + +public class Demo2 { + public static void main(String[] args) { + Student[] students = new Student[6]; + students[0] = new Student("般素素", 35, 171.5, '女'); + students[1] = new Student("杨幂", 28, 168.5, '女'); + students[2] = new Student("张无忌", 25, 181.5, '男'); + students[3] = new Student("小昭", 19, 165.5, '女'); + students[4] = new Student("赵敏", 27, 167.5, '女'); + students[5] = new Student("刘亦菲", 36, 168, '女'); + + + Student t = new Student(); + Arrays.sort(students, Student::compareByAge); +// Arrays.sort(students, ((o1, o2) -> t.compareByHeight(o1, o2))); + Arrays.sort(students, (t::compareByHeight)); //实例方法引用 + + } + +} diff --git a/src/class40/Demo3.java b/src/class40/Demo3.java new file mode 100644 index 0000000..6813a34 --- /dev/null +++ b/src/class40/Demo3.java @@ -0,0 +1,33 @@ +package class40; + +import java.util.Arrays; +import java.util.Comparator; + +public class Demo3 { + public static void main(String[] args) { + //创建一个字符串数组,用来模拟一个手机通讯录(英文名) + String[] names = {"Tom","Jerry","Bobi","曹操","Mike","angela","Dlei","Mary","Rose","Andy","caocao"}; +// 方法1 + Arrays.sort(names, new Comparator() { + @Override + public int compare(String o1, String o2) { + return o1.compareToIgnoreCase(o2); + } + }); //默认首字母排序,大写在前,小写字母在后,中文最后 + +// 方法2 + Arrays.sort(names, (o1, o2) -> o1.compareToIgnoreCase(o2)); + + +// 方法3 + Arrays.sort(names, String::compareToIgnoreCase); + + + + + System.out.println(Arrays.toString(names)); + + + + } +} diff --git a/src/class40/Student.java b/src/class40/Student.java new file mode 100644 index 0000000..1ca29f6 --- /dev/null +++ b/src/class40/Student.java @@ -0,0 +1,22 @@ +package class40; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor + +public class Student { + private String name; + private int age; + private double height; + private char sex; + public static int compareByAge(Student o1, Student o2){ + return o1.getAge() - o2.getAge(); + } + public int compareByHeight(Student o1, Student o2){ + return Double.compare(o1.getHeight(), o2.getHeight()); + } +}