From 4a1d817a5233a45228637b1faefd28ef02021ff5 Mon Sep 17 00:00:00 2001 From: NCJOAQ <2627723488@qq.com> Date: Thu, 31 Jul 2025 02:20:10 +0800 Subject: [PATCH] =?UTF-8?q?demo(class40):=20=E5=87=BD=E6=95=B0=E5=BC=8F?= =?UTF-8?q?=E5=8F=98=E6=88=90=EF=BC=88=E9=9D=99=E6=80=81=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E3=80=81=E5=AE=9E=E4=BE=8B=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E5=BC=95=E7=94=A8=E3=80=81=E7=89=B9=E5=AE=9A=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=BC=95=E7=94=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 Demo1、Demo2、Demo3 和 Student 类 - 示例代码展示了使用静态方法引用、实例方法引用和 Lambda 表达式进行排序 - 包含按年龄和身高排序学生对象的逻辑 - 添加了字符串数组的排序示例 --- src/class40/Demo1.java | 21 +++++++++++++++++++++ src/class40/Demo2.java | 23 +++++++++++++++++++++++ src/class40/Demo3.java | 33 +++++++++++++++++++++++++++++++++ src/class40/Student.java | 22 ++++++++++++++++++++++ 4 files changed, 99 insertions(+) create mode 100644 src/class40/Demo1.java create mode 100644 src/class40/Demo2.java create mode 100644 src/class40/Demo3.java create mode 100644 src/class40/Student.java 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()); + } +}