00:00
那我们再往下呢,看看这个vector,各位这个vector呢,其实用的就更少了。啊。首先呢,我们来看一下啊,这个第一点啊,底层也是一个数组,初始化容量是多少,瞅一眼吧。过去。我们可以调一下无参构造方法啊,你一个vector。点过去看一下,好,大家看初始化容量是多少啊十吧。是不是,哎,初二面是十啊,怎么扩容的。怎么扩容呢?我们可以看一下,这里边加十个元素vector.i加一个一。
01:07
二三四五六七八九十十一。加呗,二三四五六七八九十十一添加第11个元素的时候。就是爱的方法呗,是吧,点过去你看掉的是爱的吧,爱的方法是不是又掉了又增长了又。这个增长是不是又掉增长了。增长这一块大家看看看,这这是新容量啊,这啥意思啊。啊。拿那个新容量那个对对。哦,新容量里边有一个容量增增长,是不是容量递增吗。这容量递增点一下,点过去看一下是什么意思啊。容量递增。的容量是吧,是vector的双倍。啊,通过这你也可以得出一个什么结论呀,它扩容是多少啊,是圆轮的二倍吧。
02:06
是不是基本上通过这个代码是不是可以可以确定啊。默认容量是。是啊。十个是不是创建一个啊,创建一个集合添加元素满了之后扩容。满了之后扩容。那其实这个我也可以给大家简单演示一下啊,就是这块呢,其实嗯,你调这个爱的方法的时候,你可以加个断点加加个断点debug测试一下,我看看行不行啊爱的方法,然后走这个爱的方法,这个爱的方法这块有个增长增长这块又调增长增长这块呢,哎,看看这个新容量行吧。进入量啊,我先给大家演示一下debug啊,演示一下点右键加断点debug,不是run啊,是debug调试。
03:04
过来之后呢,他就走到这个新的容量这儿了,你看见没有新的容量往下走一步。再往下走一步,再往下走一步,你看这个容量是多少?20他看见了吗?这容量你看后边new capacity是20啊。这新的容量是不是20啊,哎,这个底bug到时候我再讲,各位啊,现在先不用管它行吧,先不用管它啊,来把断点给它清除掉。OK。就这边的话,它是满了之后扩容,扩容之后的容量是20,所以这边的话你可以得出什么呢?怎么扩容的。扩容之后是原容量啊,原容量的二倍。是原容量二倍。十。到二十二十到四十四十到80啊,而集合扩容特点十。
04:11
是吧,出厂量十十五。15再乘1.5呗,对吧,15乘以什么呀,1.5啊,就这意思。22.5,应该是22.5。1.5倍啊,1.5倍就记这个就行了,二例的集合扩容是原容量。1.5倍啊,这是两倍,另外再往下大家注意听啊,这个vector啊,它里边的方法都有个特点,都带这个,看见了吧,都带这个啊,Vector中所有方法都是同步的,都是线程同步的。
05:09
都带有什么呀,这个关键字是线程安全的啊,是线程安全的。效率比较低,用的用的很少啊,效率比较低,使用较少了,明白吧,哎,这个使用较少了,但你的便利是一样的呀,vector.er拿到一个是不是,哎,那么接下来你对它进行遍历就行了,While循环,然后。Eat点什么呀?Has next,有的话一点,Next是不是来返回我们这个存储的数据来执行。你是这样加的,最后是这样取出来的,对吧,你看也是一二三四五六七八九十到11吧,就取出来了啊一样。
06:02
用法还是一样的,各位啊,这边你用多肽是最好的list vector,你有一个vector。是不是,哎,这样是最好的啊,那最好来这倒一下。来,走一个。一样啊,跟刚才的结果是一样的。Ya。那么现在我想告诉大家的是,我们如何把一个。怎么将一个将一个不安全的,就是将一个线程不安全的a release的集合转换成线程安全的呢?注意啊,可以使用集合工具类叫Java Java u这个包下有一个叫collection的这样一个,注意啊注意啊,Collection。是集合接口,明白吧,加va u下除了collection之外还有collection啊,是集合工具类。
07:08
明白吧,那么这块呢,它有个方法啊,这个可能以后要使用啊collection,比如说现在a list啊list集合给一个my list new一个什么呀,哎,叫做a list,我告诉你怎么用,你记住就行了啊,这个代码咱就不用看了,来导进来之后呢,My list集合,现在呢,点I的方法往里边加数据是不是哎加一个111。再加一个什么呀,222再加一个什么呀,哎,333是不是哎。啊,333好,那么这块呢,是非线程安全的对不对,哎,安全的啊,变成线程安全的来在这。
08:00
变成线程安全的怎么做?哎,Collection啊,有个思啊思,里边有一个静态方法叫synchronized list。Synch list,把上面my list传进去就行了,这个没法测试啊,现在你记住就行了,这个这里没有办法看效果啊,因为多线程没学。没学啊,你记住你记住先啊,好吧,你记住先就这个collection s啊,有个synchron list的方法,它直接把list集合传进去,那么在这里my list的集合就是限制安全的啊啊,这个list集合就是限制安全的了。这个这个要要会啊,你要知道有个collection。Collection思在哪呢?找找collection思,你看是吧,有这样一个集合工具类,这个类里边有方法。你看synchronized的方法多了去了,你看snchronized list synchronized map是吧?Synchronized list啊,这个方法把list集合传进去,这样的话list集合就变成线程安全的了,你知道有这么一个招,这一招就行了啊,这现在还测不了,测不出来,看出来效果啊。
09:15
好了,那这样的话,咱们这个list这块就结束了,各位啊,整个这个list咱们就完事了。休息一下。
我来说两句