day15 TreeSet

day15

<02 集合框架(TreeSet)>

Set:无序,不可重复元素。

| -- HashSet:数据结构是哈希表,线程是非同步的。

                 保证元素唯一性的原理:判断元素的hashCode值是否相同。

                          如果相同,还会继续判断元素的equals方法,是否为true。

| -- TreeSet:可以对Set集合中的元素进行排序

        底层数据结构是二叉树。

                        保证元素唯一性的依据:comparteTo()方法return 0.  (通过compareTo()方法 来确定元素是否相同。


TreeSet排序的第一种方式:让元素自身具备比较性。元素要实现Comparable接口,覆盖compareTo方法。

这种方式也称为元素的自然顺序,或者叫做默认顺序。


TreeSet的要求是 往里面存的对象 必须具有比较性。(去找一个接口。只要实现的这个接口,就具有了比较性。   使用那个接口中的方法。  多态)

实现了Comparable接口的对象 就具有比较性。该接口中有个compareTo()方法。


实现Compable接口,并复写compareTo()方法,在里面判断主要条件、次要条件。


String类 本就实现了Comparable接口,所以它里面有compareTo()方法。Java中很多对象都自身具有比较性,就是这个原因。


记住:排序时,当主要条件相同时,一定要判断一下次要条件。


<03 集合框架(二叉树)>

TreeSet底层的数据结构

底层二叉树存取。根据compareTo()的返回值 来o确定是放左边还是右边:1,右子树,-1 左子树,0表示相等你,所以不插入。

读取时 默认采用先序 来遍历。


<04 集合框架(实现Comparator)方式排序>


让元素自身 具备比较性; 让容器自身 具备比较性。 如果两者同时存在,则以后者为主。

比较器 比较常用些。

接口:对外提供的功能扩展。comparator就是。


课堂笔记:

【1】

Set:无序,不可重复元素
 *      |--HashSet:数据结构是哈希表,线程是非同步的
 *                  保证元素唯一性的原理:判断元素的hashCode是否相同。
 *                  如果相同,还会继续判断元素的equals方法,是否为true *
 *      |--TreeSet:可以对Set集合中的元素进行排序。
 *      底层数据结构是二叉树。
 *      保证元素唯一性的依据:
 *      compareTo方法return 0.
 *
 *      TreeSet排序的第一种方式:让元素自身具备比较性。
 *      元素需要实现Comparable接口,覆盖compareTo方法.
 *      这种方式也称为元素的自然顺序,或者叫做默认顺序。
 *
 *      TreeSet的第二种排序方式。
 *      当元素自身不具备比较性时,或者具备的比较性不是所需要的。
 *      这时就需要让集合自身具备比较性。
 *      在集合初始化时,就有了比较方式。
 *
 *      参与构造函数。

【2】

* 当元素自身不具备比较性,或者具备的比较性不是所需要的时,
* 这时需要让 容器自身 具备比较性。
* 定义一个比较器,将比较器作为参数传递给TreeSet集合的构造函数
*
* 当两种排序都存在时,以比较器为主。
*
* 定义一个类,实现Comparator接口,覆盖compare()方法。
*
* return 0 来判断元素相同

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值