From 428bfc5c6da082c6a98f4e2770444cb84bfb2680 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sun, 2 Aug 2026 15:10:19 +0800 Subject: [PATCH] =?UTF-8?q?s-day02-=E6=AF=94=E8=BE=83=E5=99=A8Comparetor?= =?UTF-8?q?=E7=9A=84=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/collections04/Demo15.java | 47 +++++++++++++++++++ s-day03/src/com/inmind/collections04/Dog.java | 19 ++++++++ .../src/com/inmind/collections04/Student.java | 2 +- 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 s-day03/src/com/inmind/collections04/Demo15.java create mode 100644 s-day03/src/com/inmind/collections04/Dog.java diff --git a/s-day03/src/com/inmind/collections04/Demo15.java b/s-day03/src/com/inmind/collections04/Demo15.java new file mode 100644 index 0000000..7114c86 --- /dev/null +++ b/s-day03/src/com/inmind/collections04/Demo15.java @@ -0,0 +1,47 @@ +package com.inmind.collections04; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; + +/* +比较器Comparetor的使用 +static void sort(List list, Comparator c) 根据指定的比较器引起的顺序对指定的列表进行排序。 + +当集合中保存的数据不具有自然排序功能或者它原本的自然排序功能不满足我们的需求,就可以使用比较器来添加或者覆盖排序效果 + + */ +public class Demo15 { + public static void main(String[] args) { + //创建保存狗的集合 + ArrayList dogs = new ArrayList<>(); + dogs.add(new Dog("小黄", 3)); + dogs.add(new Dog("小白", 5)); + dogs.add(new Dog("小黑", 2)); + System.out.println(dogs); + //希望按照狗的年龄排序 + //static void sort(List list, Comparator c) 根据指定的比较器引起的顺序对指定的列表进行排序 + Collections.sort(dogs, new Comparator() { + @Override + public int compare(Dog o1, Dog o2) { + //return o1.age-o2.age;//升序:我-它 + return o2.age-o1.age;//降序:它-我 + } + }); + System.out.println(dogs); + System.out.println("-----------------以下是对有排序功能的覆盖--------------------"); + ArrayList students = new ArrayList<>(); + students.add(new Student("张三1", 18,88)); + students.add(new Student("张三2", 18,90)); + students.add(new Student("张三3", 18,93)); + students.add(new Student("张三4", 18,39)); + Collections.sort(students, new Comparator() { + @Override + public int compare(Student o1, Student o2) { + return o1.score - o2.score;//升序 + } + }); + System.out.println(students); + + } +} diff --git a/s-day03/src/com/inmind/collections04/Dog.java b/s-day03/src/com/inmind/collections04/Dog.java new file mode 100644 index 0000000..a11420c --- /dev/null +++ b/s-day03/src/com/inmind/collections04/Dog.java @@ -0,0 +1,19 @@ +package com.inmind.collections04; + +public class Dog { + String name; + int age; + + public Dog(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public String toString() { + return "Dog{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } +} diff --git a/s-day03/src/com/inmind/collections04/Student.java b/s-day03/src/com/inmind/collections04/Student.java index aed7ee8..c7100b8 100644 --- a/s-day03/src/com/inmind/collections04/Student.java +++ b/s-day03/src/com/inmind/collections04/Student.java @@ -34,6 +34,6 @@ public class Student implements Comparable{ } else { return 0; }*/ - return o.score - this.score; + return o.score - this.score;//降序 } }