Demo06_TreeSet.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package J20250722;
  2. import java.util.TreeSet;
  3. /**
  4. * @author WanJl
  5. * @version 1.0
  6. * @title Demo06_TreeSet
  7. * @description
  8. * @create 2025/7/22
  9. */
  10. public class Demo06_TreeSet {
  11. public static void main(String[] args) {
  12. //TreeSet创建对象使用的是无参构造方法----自然排序
  13. TreeSet<Student> set=new TreeSet<>();
  14. Student s1=new Student(1,"张三",200);
  15. Student s2=new Student(2,"李四",15);
  16. Student s3=new Student(3,"王五",225);
  17. Student s4=new Student(4,"赵六",5);
  18. set.add(s1);
  19. set.add(s2);
  20. set.add(s3);
  21. set.add(s4);
  22. //遍历集合
  23. for(Student s:set){
  24. System.out.println(s);
  25. }
  26. //如果集合中存入的对象没有实现Comparable接口,没有重写CompareTo方法
  27. //但是还想存入到TreeSet集合中,就需要使用有参构造方法
  28. Teacher t1=new Teacher(1,"张老师");
  29. Teacher t2=new Teacher(2,"刘老师");
  30. Teacher t3=new Teacher(3,"李老师");
  31. Teacher t4=new Teacher(4,"赵老师");
  32. Teacher t5=new Teacher(5,"王老师");
  33. //按照ID从大到小排序--自定义排序规则
  34. TreeSet<Teacher> set1=new TreeSet<>((o1,o2)->{
  35. int result=o2.getId()-o1.getId();
  36. result=result==0?o1.getName().compareTo(o2.getName()):result;
  37. return result;
  38. });
  39. set1.add(t1);
  40. set1.add(t2);
  41. set1.add(t3);
  42. set1.add(t4);
  43. set1.add(t5);
  44. for(Teacher t:set1){
  45. System.out.println(t);
  46. }
  47. }
  48. }