From bc989fad339c9b266003519f9b2eebf0edab681e Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Wed, 14 Oct 2026 16:11:51 +0800 Subject: [PATCH] =?UTF-8?q?s-day03--Collections=E9=87=8C=E9=9D=A2=E7=9A=84?= =?UTF-8?q?sort=E6=96=B9=E6=B3=95=E4=BB=A5=E5=8F=8AComparable=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/colletions04/Demo13.java | 28 +++++++++++ .../src/com/inmind/colletions04/Student.java | 47 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 s-day03/src/com/inmind/colletions04/Demo13.java create mode 100644 s-day03/src/com/inmind/colletions04/Student.java diff --git a/s-day03/src/com/inmind/colletions04/Demo13.java b/s-day03/src/com/inmind/colletions04/Demo13.java new file mode 100644 index 0000000..9cbdfc4 --- /dev/null +++ b/s-day03/src/com/inmind/colletions04/Demo13.java @@ -0,0 +1,28 @@ +package com.inmind.colletions04; + +import java.util.ArrayList; +import java.util.Collections; +/* + 7.Collections里面的sort方法以及Comparable接口 + public static void sort(List list):将集合中元素按照默认规则排序。 + + 注意: + 1.要使用以上的排序api,那么List集合的泛型的类型必须实现Comparable接口. + 2.当一个类实现了Comparable接口就表示该类具有了自然排序功能 + + */ +public class Demo13 { + public static void main(String[] args) { + ArrayList students = new ArrayList<>(); + Collections.addAll(students + , new Student("张三1", 19) + , new Student("张三2", 20) + , new Student("张三3", 18) + , new Student("张三4", 21) + ); + System.out.println(students); + //希望集合的学生按年龄排序(升序,降序) + Collections.sort(students); + System.out.println(students); + } +} diff --git a/s-day03/src/com/inmind/colletions04/Student.java b/s-day03/src/com/inmind/colletions04/Student.java new file mode 100644 index 0000000..09b2744 --- /dev/null +++ b/s-day03/src/com/inmind/colletions04/Student.java @@ -0,0 +1,47 @@ +package com.inmind.colletions04; + +import java.util.Objects; + +public class Student implements Comparable { + String name; + int age; + + public Student(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public String toString() { + return "Student{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) return false; + + Student student = (Student) o; + return age == student.age && Objects.equals(name, student.name); + } + + @Override + public int hashCode() { + int result = Objects.hashCode(name); + result = 31 * result + age; + return result; + } + + /* + 排序功能方法 + 我-它:升序 + 它-我:降序 + */ + @Override + public int compareTo(Student s) { +// return this.age-s.age;//升序 + return s.age-this.age;//降序 + } +}