00:00
那咱们接下来看list下边有什么呢?哎,还是同样啊,我们找重点来学,看一下list下边有什么list再往下就是实现类了,各位。其中有这么几个实现比较重要,一个叫,一个叫link,一个叫。啊,A link list和VE。我们这边在图上呢,体现出来啊,这是类了,各位类的话你就得画class,有一个类叫做什么list啊,还有一个类呢,叫做什么呀,叫做link的list啊,还有一个类呢,叫什么叫VE。VE啊。来。那么这个这个和这个它是实现了我们这个接口对吧,那实线接口应该是哪个呢?是这个虚线的空心箭头指向负。明白吗?虚线的空心线指向虚线,空心线指向负,那么这几个关系我们都叫做什么呢?哎,都叫做实线关系。
01:04
关系啊,我们叫like。来拿过来啊,往这拖一拖,拖到这关系,你看这几个。继承ISA has a对吧,哎,实现关系,这是类啊类啊类啊对吧,这个类这个类这个类是不是都实现了这个接口。我再强调一下,这只是常用的,各位,这只是常用的啊,只是常用的,我们重点到时候要学这个,学这个和这个。啊,将来你拗对象也是拗这个对象,或者是这个对象,或者是这个对象。对吧,你这个对象拗不了,因为它是接口啊。对不对,它是接口,这都是接口啊,接口是拗不了的,拗也是new这个。啊,然后在这里呢,我想跟大家说的是什么呢?就是说的集合底层是什么数据结构。而release的集合底层采用了数组。这种数据结构。
02:04
啊,采用了数组这种数据结构。来。啊,然后呢,我们的link list这一块。这块我们采用了什么呀?哎,这个link list这个集合。底层采用了什么呀?哎,采用了这个。双向链表。数据结构。有的老师你不讲讲这个双向列表吗?讲啊讲,我现在先把这个图列出来。行吧,哎,图先列出来,等咱们。把这个列完了,咱们再一个结构一个结构讲,其中数组其实我们已经讲过了。对吧?哎,数组其实已经讲过了啊,Link list集合底层采用的什么呀?是双向链表数据结构vect。Vector同样也是采用什么呀?
03:02
Vector啊,Vector集合底层采用了什么呀,数组这种数据结构。啊,数组这种数据结构,那个老师这个和这个为啥是一样的呀。它一样归一样,但是这个呢是限制安全的,这个是非限制安全的,各位。啊,线程安全的啊。来aist。List的集合是非线程安全的。线程非线程安全的。啊,然后我们。是这个集合啊,是线程安全的。啊,限制安全。
04:01
那么这块呢,其实也可以从源代码上看一看,比如说我们找一下这个vector。对吧?哎,我们来看一下这个类,这个类呢,大家看一看这里边的方法是不是都有这个synchronized,你看synchronized synchronized是不是好,我们再来看一看VE它底层是不是一个数组。它这个集合里边是不是存元素,是往数组里面存的。那同样我们看一看这个叫做a list的集合,List的这个集合打开之后,大家看看这个底层是不是也是一个数组。你看是个数组吧,是不是数组吧,你看。数组吧,哎,但是这里的方法大家看看有没有synchronize,你看没有吧,是不是没有那个单词啊,哎,没有那个单词,你看这些方法都没有那些单词啊,所以说在这个代码上我们可以看出是非线程安全的,而vector是线程安全的。啊,是限制安全的,这个效率比较低,各位啊,现在几乎不用了,使用很少啊。
05:05
这个vector。这个所有的方法都有什么呀,Synchronized。啊,关键字修饰啊,所以线程安全但是效率。较低啊,现在保证线程安全,有别的方案啊,所以外使用较少了。啊,Vector使用较少了。注意啊,这个使用的比较少一些了啊,比较少一些了。填充一个颜色吧,颜色我点成灰色。啊,那灰色就表示这块的话,就用的比较少呗,对吧,这个这个用的还是比较多一些的啊,多一些的,那没事啊,咱们每一个都会详细讲各位这个这个还有这个咱们都到时候详细看一下啊,包括这个数组是一个怎样的数据结构,还有这个链表是一个什么样的东东,是不是,那你每一个数据结构是不是都有自己的优点和缺点呀,你比如你列表的优点是啥,你的缺点是啥,对吧?你数组的优点是什么,你数组的缺点是什么,是不是哎,它都有啊,那么接下来咱们继续看set这一块各位啊。
06:29
咱把这个图得画完。来往这拖一拖啊,拖一拖啊,在这拖一下拖一下啊,空间给它拓展一下。好,那么这个set这块是这样的,Set下呀,也有很多很多啊,我们找一下啊Java YouTube找到这找找到这个set,这就是set看见了吗。那么set呢这块啊,它呢,所有已知的这个实现类啊,其中有个叫哈西set的,就这个用的比较多,有同老师吹ET用的多不多也多一会咱们换一下吹赛啊,有哈西set来,哈西set这一块是个什么东西?
07:07
这是类,各位啊,点一下class,这有个类叫什么呀,叫哈赛。这个类呢,去实现了这个接口类,实现接口应该是虚线空心箭头指向负。啊,那么这个哈希赛是个什么东西呢?诶,我们从源代码上看一下啊。我先给大家列出来哈,西塞。大家看这个哈希set,一看这个名字前面有哈希,就知道它底层是一个什么数据结构,是不是?来我们看new哈希set底层new一个啥哈希map吧,你在new一个哈希集合的时候,实际上底层创建的这个哈希map。所以这块呢,我先给大家说一下啊,哈希赛的,其实底层创建的这个哈希map集合。啊,注释text写上啊呃,实际上啊哈西set集合在new的时候。
08:02
底层实际上拗了一个哈希map集合。哈希map集合。注意。拖一拖。啊,实际上哈希赛集合在new的时候,底层创建,底层实际上new了一个哈希map集合,哈希map集合。就说明了什么呢,就是像什么呀,像。哈西set集合中存储元素实际上是存储到哪了?哈希map集合中了。有同学说,老师我这个哈希map还没学呢,对,你说的很有道理啊,这个咱们会学的,我现在只是把它告诉你啊,然后哈希map及格是哈希map集合是一个什么呀?哈希表数据结构。
09:01
哈希表数据结构各位啊,我在这里先给大家提醒一下,你看这个数据结构是数组,这是链表,这是数组,这是哈希表。那等于说老师哈表到底是什么,咱们先不用管,先不用管啊,到时候我自然会讲,那么哈set之外,大家看啊,这里还有一个叫做什么呢?叫做吹塞的,看见了没有。但是。Tree set呢,这块呢,它呢继承了一个abstract set abstract set这块我们来看看。嗯。这样啊,后退一下,后退一下啊,这个关系不太好找各位啊,看这里有个sorted set。嗯,Sorted set,看所有已知的实现类。这个接口,它所有的接口是不是一个collection接口。是吧,然后这个接口下有个实现类,这个实现类叫出看见了吗。
10:02
看见关系了吧,Sorted set,实际上它的负接口是collection啊,所以这块呢。嗯。再瞅一眼啊,再瞅一眼。啊,不是collection啊,应该是这样的,是set,大家看sorted set,它的负接口是set,看见了吧,所以在这个图上啊,应该是有这么一个。接口各位,这个接口叫啥呢?Sorted set,这是个接口,各位啊,接口来从这点一下它。这个接口和这个接口之间的一个关系属于什么呀?继承关系,你从继承结构上看看,这个接口的负接口是set。来。那么这边呢,是实线的空心箭头指向负吧。是不是,那salted set下边我们通过这个文档看一看,它下边有个实现了叫set,看见了吗。
11:00
吹塞的啊,把这个吹散拿过来也,它下边有一个实现类叫做吹塞。这个ET它的负接口是它,所以是一个实线关系。虚线的空心箭头指向负。所以这个结构啊,是变成这样的。这样的一个结构。看看这个图,各位。啊。啊,往这儿拖一拖。含set是一个集合啊,这是一个接口,这是一个时间类,那么这个吹塞是什么呢?通过我们这个。文档这儿看一看吹ET,我们来看这个吹ET集合,它这个集合在new的时候。底层有了个啥?调这个。大家看。Set集合。是不是扭的时候扭了一个吹map?是吧,所以说这个吹塞集合它底层啊,它是一个什么呢。
12:09
吹set集合。底层实际上是吹map new这个吹。Site集合的时候,底层实际上new了一个map集合,那换句话说往什么呀,这个吹set集合中放数据的时候。实际上是将数据放到吹。Map集合中了。啊,是这样。那么现在通过这个名字我也告诉大家啊,吹map集合底层采用了二叉树数据结构。
13:05
啊,采用了二叉数这样的数据结构。我看看这个能不能复制到word文件里面。点右键我们新建一个word,我看一下啊。拿过来放到这儿好,你看。还可以吧,是不是啊可以啊。嗯。关一下。看这个结构上面这个是一个E特表可迭代的这个是个collection,继承E特able collection呢通过调用eter这个方法来得到它迭代器通过迭代器的三个方法完完成集合元素的便利迭代。下边有两大分支,一个是list,一个是set list存储元素的特点是有序可重复,这个set存储元素的特点是无序不可重复。啊,然后呢,这个list的集合是一个数组link list集合它是一个什么呀?链表迈是一个数组啊,但是它是线制安全的哈希赛的底层是个哈希map,然后这个set下有个子接口叫set sort set下有个实现类,这什么叫吹set,大家注意啊,这是个接口接口接口接口接口,这都是接口,只有这个这个这个这个还有这个是实现类,各位,那么其实在一个这个集合的继承结构当中啊。
14:19
不止是这一点东西,我们以后的开发主要是用这几个,听懂了吧,所以在图上体现出就这几个,但你不能在将来面试的时候你说啊,集合里边就只有这么几个集合,咋地咋地咋地,你这个说法就错误。集合其实很多很多,各位我在这里强调一下啊,只不过我们现在常用的就这几个啊,列出来,将来在面试的时候,他可能会问你集成集合的一个继承结构图啊,你按照杜老师这个说就行啊,说就可以。这块呢,我往这拖一下拖一下。那么这个呢,就是我们所说的一个啊,以单个方式存储元素,那至于说速度是啥,链表是啥,哈希表是什么,对吧,包括这个叫什么叫做呃这个。
15:08
二叉树是个什么东西,咱们到时候呢,讲到的时候咱们再看再说也是可以的啊,行吗?咱们这样啊,先休息一下。
我来说两句