Java-TreeSet类

  • 内容
  • 评论
  • 相关

TreeSet集合底层才有红黑树算法,会对存储的元素默认使用自然排序(从小到大).

注意: 必须保证TreeSet集合中的元素对象是相同的数据类型,否则报错.

----------------------------------------------------------------------------------------------

TreeSet的排序规则:

自然排序(从小到大):

TreeSet调用集合元素的compareTo方法来比较元素的大小关系,然后讲集合元素按照升序排列(从小到大).

注意:要求TreeSet集合中元素得实现java.util.Comparable接口.

java.util.Comparable接口:可比较的.

覆盖 public int compareTo(Object o)方法,在该方法中编写比较规则.

在该方法中,比较当前对象(this)和参数对象o做比较(严格上说比较的是对象中的数据,比如按照对象的年龄排序).

this  >  o: 返回正整数.  1

this <   o: 返回负整数.  -1

this == o: 返回0.     此时认为两个对象为同一个对象.

--------------------------------------

TreeSet的自然排序中,认为如果两个对象做比较的compareTo方法返回的是0,则认为是同一个对象.

--------------------------------------

定制排序(从大到小,按照名字的长短来排序):

在TreeSet构造器中传递java.lang.Comparator对象.并覆盖public int compare(Object o1, Object o2)再编写比较规则.

--------------------------------------

对于TreeSet集合来说,要么使用自然排序,要么使用定制排序.

判断两个对象是否相等的规则:

自然排序:   compareTo方法返回0;

定制排序:  compare方法返回0;

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注