00:00
好,那list接口呢,我们就翻篇了,那下边呢,我们提第二个接口叫做set接口,这个set接口呢,仍然是我们collection这个接口的一个子接口啊,首先呢,我们关注的就是set接口它存储数据的特点,这个咱们在一开始讲这个整体框架的时候呢,也说过了啊,那么这个set呢,我们关注的就是它首先存储数据的特点啊,就是无序的不可重复的哎这样的点,那么具体的它的一个实现类啊,我们下边呢,这有PPT中也有写一个呢,是我们这个叫哈希set,那我们要讲的其实也是这样的几个结构啊,然后再往后啊,提到了叫link的哈西set啊,还有另外一个结构叫做tree set,这呢是我们set这个接口的三个主要的事现类啊,那我们讲的这个,呃,这个内容的话呢,跟这个list呢也比较相似,首先呢,我们关注一下这几个实现类呢,各自是什么特点呢,这样的话。
01:00
在我们就知道开发中到底咱们该用哪个啊,这是其一,另外的话呢,知道用哪个了,那么方法都有哪些呢?诶我们看下里边的方法,哎,主体呢,其实就是这样的事情,行,那我们就开始来讲这个set结构,这些呢我们都关掉。我们在下边儿呢,去新建一个包。咱们换一个包叫张二一在这个下面呢,咱们来讲这个set结构,哎,我这呢就写成sat的一个测试。首先咱们关注的第一个问题,跟刚才讲例呢是一样的,就是我们collection下边的set接口的一个框架结构,这个还得需要看下咱们昨天讲的这个collection,把这块来我先整个的拿过来啊,CTRLC,那第一个我们提到这个set接口的这个框架结构,哎,拿过来这里边呢,我把这个例子呢就干掉了,现在我们不关心它。好,看下我们这个set,它的这个负接口呢,是collection,它的特点是这样子的,那么set呢,叫无序的不可重复的,具体的实现类这样的三个分别呢,打开一个一个呢进行一个介绍。
02:17
那首先呢,我们看第一个叫做哈希set,那么哈西set首先呢,首当其冲说它呢,作为我们set接口的主要事间类,那言外之意呢,就是大家没有特殊情况呢,你就选择用哈希塞就可以了啊,那么它是作为一个主要实验类,另外呢,再多说两句,它呢是一个线程不安全的,哎,然后它呢可以存储闹纸。闹纸就是我们调这个ADD方法的时候呢,你可以往它这里边去ADD是一个闹。啊,这个有的呢,一些结构就不行啊,这个我们在这就说一下,它是可以的,那完事了啊,就是关于这个哈set,那么第二个结呢,叫link的哈希set,你看它是在这个哈希赛的基础之上呢,Link了一下。
03:13
而这个link单词呢,咱们已经体验过了啊link list嘛,是不是就有一个这个列表结构,那么link的哈希set有点像什么呢?诶他还先是一个哈希set,然后呢又link了一下,所以呢,诶这哥们呢,其实是我们哈希赛的一个子类。嗯,你看一下我们这个啊,CTRLC一下ctrl shift t。这个进来看他的这个负类,哎,就是哈希set,那ya IG呢,就是我们这个谁啊,这个link哈set啊,他在我们哈希set的基础之上呢,给你加了一些这个这个这个前后的这个指针啊,或者叫链表。能体验的效果是什么呢?让它看似像是个有序一样,当然这个有序呢是骗人的啊,哎,我们会去讲是这怎么叫有序啊,哎使得这一个情况呢,就是,哎,我们如果去遍历这个link哈,Set当中的元素的时候呢,你看到它是按照你添加的顺序来的。
04:12
就是因为它加过这个link,加过这个前后的这个指针啊,哎,我们写一下它呢,是作为叫哈希set的这个子类。啊,作为它的一个子类出现的,那么特点呢,就是加了一个link的啊使得呢啊便利这是第一个点啊,然后便利啊其内部数据时啊,我们说可以按照这个添加的这个顺序去便利。这个就有点儿意思,可以按照添加的顺序去便利。有的同学可能会想,那不就是有序吗?不是有序,咱们有序指的不是这个事儿,哎,那一会儿呢,咱们重点来谈一谈,赛叫无序不可重复,什么叫无序,这是咱们一会儿的一个重点啊,那这呢,我们就结束了,在下一个呢,叫做tree set tree首先它是个set set呢就意味着它是无序不可重复的,加了个tree tree是树啊,那就是因为我们这个吹S啊,它底层这个存储的结构啊,它比较特别,对,它是使用这个二叉树存的,再准确的说呢,使用红黑树存的。
05:25
啊,那使用它存的一个特点是什么呢?这个使得呢,我们吹set,如果大家去添加元素的时候呢,首先的要求就是你添在的元素得是同一个类new的对象啊,不能像原来一样,这放了个字符串,又放了个123,放了一个这个new person什么都能放,这个不行了,他要求你放的这个数据呢,我可以给你排序了,诶所以呢,要求放入吹set当中的数据得是同一个类new的对象,然后呢,我们可以按照这些对象的某些属性进行排序。
06:01
咱们前面讲过排对象顺序的话呢,是不是涉及到两个接口啊,哎,Comparable和comparative,那么这两个接口呢,在这块呢,也会有所体现啊,咱们在一开始讲这个集合的时候。嗯,一开始讲这个集合框架的时候呢,这不是也说过这两个接口嘛,这两个接口呢,在咱们collection这块呢,就是在,诶就是在我们这个,呃,叫吹塞这块呢,体现这个应用的。嗯,哎,这块我们写一下啊,就是吹塞呢,我们体现出来的特别之处呢,就是可以按照添加的啊元素啊这个,嗯,这样说吧,可以按照添加元素或者叫添加的对象的这个指定属性哎进行排序。就是我就填到这个垂彩的当中了,OK,这呢是我们对这三个类的一个简单的一个体会啊,简单的一个体会,那么下边这个重心呢,我们先不着急去说这这这三个事儿,我们先来看一下谁呢?这个set它的特点呢,叫无序的,不可重复的,怎么去理解它啊,我们接下来再讲的话呢,就是怎么去理解它。
07:14
这个先把这个结构呢,我们填一下。
我来说两句