A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. 查阅API,得到:
  2. “TreeSet(Comparator<? super E> comparator)
  3.           构造一个新的空 TreeSet,它根据指定比较器进行排序。”
  4. 现在把ArrayList改成TreeSet



  5. ##六、比较器的泛型定义方式分析
  6. ```
  7. import java.util.*;
  8. class GenericDemo6
  9. {
  10.         public static void main(String[] args)
  11.         {
  12.                 //方式二和方式一选其一,打开对于的代码块就可以了
  13.                 TreeSet<Student> al1 = new TreeSet<Student>();//方式一让学生自身具备比较性
  14.                 //TreeSet<Student> al1 = new TreeSet<Student>(new Comp());//方式二,让集合具备比较性
  15.                 al1.add(new Student("Student--abc--1"));
  16.                 al1.add(new Student("Student--abc--3"));
  17.                 al1.add(new Student("Student--abc--2"));
  18.         }
  19. }

  20. class Person
  21. {
  22.         private String name;
  23.         Person(String name)
  24.         {
  25.                 this.name = name;
  26.         }
  27.         public String getName()
  28.         {
  29.                 return name;
  30.         }
  31. }

  32. /*
  33. <? super Student>所以<>可以填<Student>或者<Person>,
  34. 注意<? super Student>的Student是跟着TreeSet<Student>中的Student走的!
  35. */


  36. //这个是让学生自身具备比较性
  37. class Student extends Person implements Comparable<Person>
  38. {
  39.         Student(String name)
  40.         {
  41.                 super(name);
  42.         }

  43.         public int compareTo(Person s)
  44.         {
  45.                 //Person s = new Student();这个是可以接受进来的,所以能比较
  46.                 return this.getName().compareTo(s.getName());
  47.         }
  48. }

  49. /*
  50. <? super Student>所以<>可以填<Student>或者<Person>,
  51. 注意<? super Student>的Student是跟着TreeSet<Student>中的Student走的!
  52. */
  53. /*
  54. //这是让集合具备比较性
  55. class Comp implements Comparator<Person>
  56. {
  57.         public int compare(Person s1,Person s2)
  58.         {
  59.                 //Person s1 = new Student("abc1");所以是可以接受Student和Student的父类
  60.                 return s1.getName().compareTo(s2.getName());
  61.         }
  62. }
  63. */
  64. ```
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马