1. 基本介绍和使用
(1)TreeSet实现了Set接口,是Set接口的实现子类,底层是TreeMap。
(2)使用无参构造器,创建TreeSet,通过add方法直接添加元素,最后添加的结果仍然是无序的。
(3)想要添加的元素,按照字符串首字母顺序大小来排序,使用TreeSet提供的一个构造器,可以传入一个比较器(匿名内部类),并指定排序规则。(不能添加相同的元素)
(4)想要添加的元素,按照 字符串长度大小 来排序,就改变比较器规则,使用length()方法。(不能添加长度相同的元素)
2. TreeSet的去重机制
如果在创建TreeSet对象时,调用构造器,传入了一个Comparator匿名对象,就使用实现的compare()方法去重。如果方法返回0,就认为是相同的元素,就不添加。
如果创建TreeSet对象时,没有传入一个Comparator匿名对象,则以添加的String对象 底层实现的Compareable接口的compareTo()方法进行去重。
没有传入Comparator匿名对象,底层就会执行第一句代码,将添加的元素key本身 向上转型为 Comparable接口,然后通过第二句代码,调用String的compareTo()方法进行比较。(String字符串底层是实现了Comparable接口,所以才能进行转换)