00:00
那么在接下来我们提到这个list啊和set,那首先呢,来看一下这个list,首先针对我们这个存储数据的一个特点,包括呢,它具体的一些实现类啊,这块呢就比较丰富了,找到这个list,先把整体这个结构呢拿过来,CTRLV拿过来,嗯,行,这个往后移一下啊,往前移一下。还放不过来,把它变小一点了,稍微有点小了。稍微有点大了,行,就就这样吧,想让他出现在这个一行上啊。TCTRLS一下,那么把这几个点的话呢,大家都能够说出来啊,就是涉及到list它的特点,然后这三个具体实现类它的这几个点啊,这呢也涉及到咱们说的这个面试题啊,你得能够把这几个点呢都能够说出来,嗯,那么对于大家的要求来讲的话呢,第一个事儿就是你能够知道它里边的常用方法,就咱们考的这个事儿。
01:15
这边呢,说这些方法其实挺多的啊,咱不用都关注了,只需要呢关注这些。对别的呢,不多要求,这几个方法拿起来就能掉啊,应该是这个样子,好,这是第一个层次一的要求,然后接着往下再来说这个层次要求,涉及到这个叫常用的时间类,哎,常用时间啊,其实我给你写到这了啊,那这个存储数据特点呢,那你其实可以泛泛的就光说一下存储的是这样的特点啊,具体这个时间类呢,哎,你可以往下放吧。啊,这提到了这样的123这样的三个实现类,那么这三个实现类我们再关注的话呢,就是底层这个源码的一个情况了,涉及到这个源码分析,源码分析呢,咱们这三个类其实呢,都带着大家呢看了看啊都带着大家看了看,那首先呢,我们最关心的就是a list。
02:08
这是关于这类的一个源码分析,它呢在七和八当中又有区别,诶咱们这两个呢,带着大家呢,其实都看了一下啊,CTRLC啊,这是关于这个的一个源码分析。啊,这是第一个它。哎,换成个红的吧,呃,这个呢,大家稍微重点关注一下啊,然后后续的话呢,提到这个叫link list啊,其实这里边这个结构呢不复杂,只需要呢,我们关注一下它怎么体现,这个叫双向链表,哎里边呢,定义了个这个node,哎通过它呢来体现的啊哎,CTRLC哎这是他啊这个咱们上来这写个二不合适了,写个4.1。哎,4.2这样啊,呃,就是像这块呢,我们看到说它的就是体现了一个叫双向链表了,这个大家呢,呃,我们这个讲完集合以后呢,带着大家稍微说一下这个数据结构的问题啊,那数据结构里边呢,像我们说这个基本的结构呢,叫数组,这是一种啊,然后另外一种呢,叫做这种链表的啊,链表的话呢,像这种这叫单向链表啊,这叫双向列表了。
03:20
那怎么体现这种结构的,那其实就像我们这个node一样,说这个node呢,哎,或者双向,双向的一个先基本的是一个单向啊,说怎么就能看到,说他们是一个练一个的方式,大家会看到我们在一个类当中,我又定义了还是这个类的一个变量。嗯,哎,我就说呀,它们其实就能构成一个链表的一个结构了。那你想想啊,咱们呢,比如说以前咱们讲这个面向对象的时候,老师造了一个person类哈,我现在造了一个person类,我在这个person类里边呢,我又声明了一个person类型的一个变量,这个变量呢,我的名字就叫next,那我们在内存当中,咱们比如new一个对象,我nu个对象里边呢,我就可以指定它的一个属性,比如这是占空间,这是堆空间,我扭了一个对象,这个对象里边有个属性呢,叫做next还是person类型,那就意味着呢,我们可以让这个变量呢,指向另外一个person的对象,都西指向它了,把这个对象新的一个person对象的地址赋给到我们这个的属性next,那么你这个对象呢,它也有一个属性,叫做person类型的next,意味着呢,诶,我也可以再你个对象,把这个对象的地址呢附给你,你就指过来,然后依次这样下去,这不就是个列表吗。
04:40
这个呢叫单向连表啊,我广知道它的next是谁,这个你不知道你的上一个是谁,那怎么就知道上个是谁了呢?再定一个是吧,Person类型的一个变量,然后呢,你可以起个名字叫啊pre嘛,就是它呢来记录上一个是谁,那比如我这有两个变量了,那第一个对象呢,它的前一个呢,我这写成no,因为你是第一个了嘛,那么第二个的时候呢,我定一个next,同时我还定一个上一个,把这个它的前个这个呢收地址哎付给我,我这呢就会指向这儿了,这样的话就知道你,你知道我的下一个,我知道你上一个是谁,那下边呢也一样一样的这个道理就可以了,这呢就构成了双向链表啊,那么如果大家你看到在一个类当中,它定义了当前这个类的两个变量,它不一定是双向链表。
05:36
它还有可能呢,是二叉树,其实怎么去区分,你也用不着在下边看它添加,当然本质来讲你得看添加了啊,其实呢,你通过这个变量名基本上呢就能够暴露出来,如果他写的叫next和pre,就像这里边的这个一样,它的下一个,它的上一个,那它就是个列表,因为通过名字呢就暴露出来了,那么如果他这个名字写的不叫next和这个pre,它写成呢,叫next和right。
06:08
左和右这个呢,它就是一个二叉树,当然本质上来讲,你去看人家添加啊,那个时候才是真正看出来是什么,只是我们在这呢,暴露出来它的一个点了,你想我们现在是一个对象,这个对象里边呢,又可以声明当前它这个对象类型的两个变量,我不叫左,呃,前一个后一个我叫左和右,首先呢,它能够指向一个新的元素,这个呢也能指向新的一个元素。是它,那么是链表还是二叉树,关键呢,就是看这个对象怎么看待它,我这个对象呢,是同一个类型呢,我也会有一个哎做呃,有一个这个有个这个,那那好了,那我们就主要关键看谁呢,我们诶换成一个这个啊掉出来一个这个这个数字母来了,这个没用啊没用,我关键呢就是看他怎么看待这个对象,怎么看待这个元素了,如果说我这个指针我往回指了。
07:10
就相当于你指向我,我指向你,这就成列表了,又啊现在呢,不让指它呢,又指向别人了,然后这个呢,哎又往下指了,这个呢也是有个左呃111个元素,右个元素,然后人家这块呢,又往别人去指了,这不就是个二叉树吗?对吧?哎就是树形结构呢,其实就是这样造的。哎,就是这样造的啊呃,没有大家想的可能说那么那么高大上,说是是不是就有专门的一个东西,就是二叉树,没有,就是用我们基本的这个,呃,数组也好,或者是这个链表也好,去生成的这个树形结构啊行,就是这么着,嗯,这呢是关于这个叫link list啊就过了啊嗯,那其实呢,咱们又下边稍微多说一下,这个叫vector。
08:02
C。哎,4.3这个we的话呢,我们在说的时候呢,就可以稍微比较轻量级一些了,毕竟开发中用的也比较少,好主要呢,它关于跟这个这个区别,这个咱们关注一下啊,扩容上这个事,那么这个vector的话呢,其实它还有一个啥呢,我们也就了解一下就行啊ctrl shift t啊这呢,你写上谁呢啊VE to,这叫vector进来,哎,跑到这来了。这个VE的话呢,你选中它,咱们在eclipe当中呢,是按CTRLT看它这个,呃,继承关系啊,在我们这块的话呢,你选中它以后呢,你点这个F4就能看到它的一个集成数的一个关系啊,这是它的一些这个上面的一些负类了,它呢有一个子类。
09:00
叫做stack stack呢,咱们这个翻译过来叫做占吧,对吧,哎叫站啊,哎相当于呢,这个站其实作为咱们这个诶we的一个子类了,站呢也是一种典型的数结构。哎,它的数据结构的特点呢,叫呃,先进后出哎。你就知道这个占呢,这个这咱一说就说多了哈,咱们先不说那么厚,就这个占也是一种具体的数据结构,像咱们要往数组里去存,大家呢,存的时候呢,其实没有要求,就是这个数组的话呢,你是不是你想往哪个位置放都可以往哪个位置放,呃,不是这个,这这是前提是啥呢?比如我这已经存了五个元素了啊,12345,你可以呢,往这个第六个元素放也可以,是不是往前面五个中的任何一个位置放,当然你不能往这个789放啊,哎,就是前面这个位置你其实可以随便挑,哎,往前面放呢,就要插入了,咱们sta不一样。
10:01
磁带的话呢,说你要放怎么着,是不是只能是从后边放,不能往前边放啊,这是往里边放,能够往里放,然后也能够去人木,人木呢就是删除嘛,普通的一个数组结构啊,你要删我可以删前面的任何一个位置上的元素,但是对于站来讲不行占呢,你要删只能删尾部的这个,说我我想删尾部的前一个怎么办呢?好,你想删尾部前一个,你先把尾部这个删掉,然后呢,你再删它的前一个,哎,整体表现出来,它不就是一个先进后出的特点嘛,相当于对原有的这个数组的操作呢,咱们更加严格的去控制啊,我不对外暴露那么多方法,我就暴露那些很严格的方法,要删只能删最后一个。哎,那其实整体上来看,它就是个占占,也不是说呢啊,说有个东西它就要占,我们去看看它的怎么,呃,内存什么样,它也是基于咱们这个,诶我们从这来看到站呢,它不是集成于这个vector的嘛,Vector的底层就是数组,像这个站的话呢,它也是用数组存的,只不过在这个数组基础上呢,我们去控制你操作这个数组的这个数据只能够从尾部添加,删的话呢,也只能从尾部去删除,哎,这呢就是先进后出的特性。
11:20
这样啊,这一说就稍微多了,了解一下,知道这个站呢,是我们vector下的一个子类啊,就行啊,不多说了,这已经说的挺厚了啊,然后呢,我们提到了说呢,哎,往list中添加数据都有这样的要求。List list在这儿。啊没写这写到最上边了,写到哪看看啊没没在这儿具体去写了是吧,那我们在这说一下啊,哎,存储元素要求呢,就是添加的添加元素或者添加的这个对象啊,所在的类啊要重写啊E口的方法,哎这个呢是一定需要去重写的。
12:11
啊行,然后下边这块呢,提到这个面题,哎这呢,就咱们说的这个事。哎,关于这个,呃,源码分析完以后,我们提到这样的一个典型的面试题啊,CTRLCCTRLV。相同点。这个又少字了,三个类三也出不来啊,这里边这个bug还挺多的,诶三个类呢都实现了一个接口,这不多说了啊,然后不同的呢,就是大家把这个事说一下,首先呢是我们这个第三个啊常用时间类这块,然后呢,再深入一点说呢,就把这个四呢也说一下啊,这就我们这道这个题目啊,线上这个呢,就是第三部分,哎,然后加上大家说的这个,诶第四部分,哎这呢就妥了啊,这个题呢就答的很厚了,就嗯这个就完事。
我来说两句