From 143e8e0f59bd580d8ea5287ca040e87000b0e3dc Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Mon, 3 Aug 2026 11:21:20 +0800 Subject: [PATCH] =?UTF-8?q?s-day04-TreeSet=E4=BF=9D=E5=AD=98=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=AF=B9=E8=B1=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- s-day04/src/com/inmind/treeset02/Student.java | 41 +++++++++++++++++++ .../com/inmind/treeset02/TreeSetDemo09.java | 31 ++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 s-day04/src/com/inmind/treeset02/Student.java create mode 100644 s-day04/src/com/inmind/treeset02/TreeSetDemo09.java diff --git a/s-day04/src/com/inmind/treeset02/Student.java b/s-day04/src/com/inmind/treeset02/Student.java new file mode 100644 index 0000000..4be5024 --- /dev/null +++ b/s-day04/src/com/inmind/treeset02/Student.java @@ -0,0 +1,41 @@ +package com.inmind.treeset02; + +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 o) { + return this.age - o.age; + } +} diff --git a/s-day04/src/com/inmind/treeset02/TreeSetDemo09.java b/s-day04/src/com/inmind/treeset02/TreeSetDemo09.java new file mode 100644 index 0000000..6dda25a --- /dev/null +++ b/s-day04/src/com/inmind/treeset02/TreeSetDemo09.java @@ -0,0 +1,31 @@ +package com.inmind.treeset02; + +import java.util.Comparator; +import java.util.TreeSet; + +/* +TreeSet保存自定义对象 +注意:TreeSet会使用元素的自带的自然排序功能Comparable接口 + */ +public class TreeSetDemo09 { + public static void main(String[] args) { + //创建一个对学生对象有排序功能的集合 + TreeSet treeSet = new TreeSet<>(); + treeSet.add(new Student("小王1", 18)); + treeSet.add(new Student("小王2", 17)); + treeSet.add(new Student("小王3", 20)); + System.out.println(treeSet); + System.out.println("--------------如果自定义对象没有自然排序或者不符合我们的需求,使用比较器------------------"); + TreeSet sets = new TreeSet<>(new Comparator() { + @Override + public int compare(Student o1, Student o2) { + return o2.age - o1.age; + } + }); + + sets.add(new Student("小王1", 18)); + sets.add(new Student("小王2", 17)); + sets.add(new Student("小王3", 20)); + System.out.println(sets); + } +}