00:00
OK,那接下来我们再来说啊啊,那么下一个话题呢,我们来说一下,假如说我这个对象的某个属性呢,是集合类型的。是吧?啊,那么这样的话呢,我们就需要给人家注入一个集合,那么这个集合我们应该怎么做呢?来听我说,呃,在这个s square里面呢,他帮我们内置了一组xman的标签啊,来去配置这个集合属性,比如说我们现在看到的list set或者是这个map啊,List set或者是这个map啊,那这里面的话就列出了我们常用的一些集合,其实我们最常用的也就是这个类似跟什么了,哎,跟这个map了,对吧?大家这个应该在加va SE的时候,我们学过各种各样的集合吧,是吧?什么aist呀,什么link的list呀,还有什么呀,Site里面什么学过什么t site呀,什么哈呀是吧,Map里面学过什么呀?哈,Map还有呢,Table是吧?还有呢,Map学过没?也学过是吧?哎,学过各种各样的东西,但实际上我们在具体使用的时候呢,也就那么几个。
01:04
对吧?啊,也就那么几个哈,好,那么现在我们来看一下啊,那比如说呢,现在我就想给想给我的一个什么类似的集合注入一个值,那么现在的话,我把它跟数组放到一起来讲,为什么呢?因为对于数组这种类型来讲,它其实跟我们集合用起来是一样的,因为本身集合的底层就是一个数组嘛,这个大家是知道的吧,啊,就是我们那个a list啊,说的这个精确一点,Link list底层就不是数组了吧,对吧?哎,这这个它底下本身就是一个数组啊,所以说呢,它们两个我们就可以放到一起来去说的啊,用法都是一样的,好吧,啊,那我们来怎么做呢?大家注意,我先回到我们这个开发工具里面呢,然后呢,呃,再去写上这么一个类啊,还是在这个Di下面来,我们去用一个class,呃,比如说我就叫做person list吧。好吧,哎,就叫做person类啊,我们把这个写出来,然后这个里面的话呢,我们就去模拟一个集合类型的属性啊,首先呢啊,我给它一个啊名字吧,随便写一个名字啊,然后呢,再来写一个集合类型的一个卡,那么大家来看一下这个属性是不是就是一个集合类型的对不对,好来最后呢,我们加上干才的方法,再加上我们的two string这个方法,好,这就写好了,写好以后的话,我们还是回到我们的这个配置文件里面啊,我们翻到最下面再来给大家去加东西啊,我们讲的是这个类集合怎么进行配置呢?一样的道理,你现在还是要去配置一个并嘛,比如说我就叫什么person list啊class就是我们刚刚写好的person list啊,直接提示一下就行了,然后呢,它里面呢,我们有一个名字是吧?啊name啊value。
02:56
啊,Personal类,那我们随便写一个吧,写个外国人是吧。
03:02
啊,它里面的话呢,我们有一个什么东西啊,有一个卡吧,是不是有个卡啊,对吧,那这个值我们怎么注入啊,这是个集合啊,你可想明白了,首先集合的话呢,它也属于我们的对象类型吧,对不对,那么我们首先应该想到的是,那我可不可以使用一个ref去引用啊。原理上是可以的吧,但是你会发现我找了一圈,发现我整个的LC容器里面并没有一个集合对象可以让我进行用,因此这个地方的话呢,我们就得什么呀,给人家去构造一个集合了,好来看一下构造一个集合,怎么把这个集合构造出来呢?我们就使用刚刚提到的一个标签,就叫做类似的标签,在这个类似的标签里面呢,我们可以通过这几种方式来去写啊,哪几种方式呢?第一种方式还是使用我们的B,就是你直接给他配一个B的这种方式,那么就相当于我们的内部B吗?能理解吧?第二种方式呢,我们使用什么呀,Ref的这种方式去引用就行了,比如说这个集合里面我保存什么东西啊,保存的是不是都是一个卡项吗?好,那么当前你看了,当前我在我的LC容器里面是有各种各样的看项的,那我在这个位置可以怎么写呢?比方说集合里面,我让你先保存一个通过ref,这里面呢有一个B,然后呢指定上你。
04:30
你要引用的那个B的ID值,比如说卡来再来写,卡一再来写啊B比如说看二能看到吗?哎,就可以这么去做了,当然了哈,那如果说诶你没有这个病对象怎么办啊,就是我不能引用的话呢,那你可以使用我们的内部病。对吧,你使用内部病来配置,而且可以写多个的哈,你写一个内部病代表的是集合里面的一个元素,你再写一个代表的又是集合里面的一个元素,那如果说诶,现在我没有去使用它,而是使用了三个ref,那么也就意味着我当前集合里面呢,总共有三个元素,这个能理解了吗?简单吧,好,那么这个写好以后呢,我们也来给大家做一个测试啊,来,回到我们的还是这个测试方法中来,最下面我们再来往下加啊好,TS我们的这个类似集合。
05:28
好test,然后呢,这个里面的话呢,我们就直接来获取了哈,啊,我把这个往上一点好获取什么呢?CTx.get b这个B叫什么呀?是是叫做这个person list,好,那就是person list.class好,最后返回的就是一个person list啊那我就叫什么就叫person list吧,然后呢,我们C输出一下person list运行一下。
06:02
来吧,看这个效果好,名字的话就是我们通过字面值给他付的啊,然后后面的话,你看一下,在这个集合里面,首先我们能看到这是一个对象吧,对不对,再来往后翻,你看这是不是第二个对象啊是吧,再来往后翻,你看一下这是不是第三个对象啊,能看明白了吗?看到了吧,OK,而且在这个地方呢哈,大家还要注意一下,要因为我第一个引用的就是我们那个卡对象吧,对吧,但是大家要知道的是什么呀,我的第一个卡对象,它的这个speed有值没。没有没有吧,但是现在我们从这个打印结果上面来看,它居然有一个值,这又是为什么呀。为什么呢?啊,对不上了是吧?啊,那看看刚才讲的时候肯定没有好好听了是吧,刚才我们是不是通过截然的方式给它赋了个值啊,对不对,那么现在我说这个的目的是什么呢?就是想让大家知道你通过极的方式所负的那个值呢,其实说白了就是给本来的那个对象符的值啊,你看了哈,给你解释一下,虽然说啊,虽然说我在这个P里面啊,注意我在我的这个person里面呢,去引用了你这个看了吧,对不对,然后呢,通过集联的方式呢,给我当前这个成员变量属性的这个speed呢,负了一个值,但实际上呢,因为你是引用的这个咖啡项,就相当于你的这个属性指向了,是不是还是我们原本的那个咖啡项啊,那么你给人家去改这个值的话呢,就相当于你改的就是原本的那个咖啡项,就相当于你通过极点的方式,把人家原本的那个咖啡项的那个数。
07:51
重新给他改了一下,那么你改完以后呢,你在这个下面你再去用的时候,那当然你用到了就是被修改以后的了,听明白了吧,哎,你用的就是被修改以后的,所以说呢,现在我们从这个打印结构上面来看,这个位置它确实是有值的。
08:09
能理解这个意思了吧,啊,就相当于有一个对象,然后呢,被多个引用呢指向它了,那么你通过其中的一个引用去改的这个对象,那么其他的引用看到的是不是也是被修改以后的。理解这个意思吧,啊,就是面向对象里面,我们这个应该都给大家去讲过的哈,就是多个引用指向同一个对象的时候,其中一个引用改了以后,那么其他的应用看到了是不是也是一样的,修改以后的这个结果啊,能明白了吧?OK,这个大家稍微注意一下就行了啊好,那么回到我们这个讲的这个集合上面,那么对于这个集合来讲的话呢,你这么做就可以了,好同样我再告诉大家,那假如说我把这个地方呢,我换了,我换成什么东西啊,我换成一个数组了。好,我换成这个东西了,我应该怎么注入啊。
09:03
啊,其实呢,这个point呢,帮我们提供了一个东西叫做什么呀,Arra啊,你可以通过这个arra呢,去给它构造一个数组,或者说大家注意了啊,你就不要再去使用这个A瑞了,而且呢,我也推荐大家呢,不使用它,那用谁啊,你就直接使用我们的这个list似就行了啊,直接使用这个list似就行了,它既可以给你的集合赋值,也可以给你数组类型的那个成员变量啊那个属性来给你进进行这个复制啊明白吧,因为我刚才说过嘛,你这个集合底层本身就是个数组嘛,对吧,所以说呢,大家在遇到这个集合类型的,或者说就是遇到这个类似集合,或者说我们速度类型的,你就统一使用这个list来去给它复制就行了。听明白了吧,OK啊,那这个我就顺带的给大家去讲了啊好,那么再来说,那假如说我把这个地方改成了什么呢?赛,那又用谁啊,好,我改成了赛了,那你能不能想得到,在这个地方它应该也有一个赛程对吧?所以说呢,你只要会了其中的一个,那么跟它相同结构的你都不能会了。
10:19
虽然说我们的这个list跟site,它这个从呃,保存的这个方式上面来讲,可能有一些差异性,但是呢,从保存的这个元素的结构上面来讲,是不是都是一样的呀。都是单位的对象,单位的对象,单位的对象给你搁到一起的嘛,对吧,所以说保存这个元素的结构都是一样的,那么我们操作起来呢,方式都是一样的,只不过用的是不同的这个标签而已啊,因此呢,这个赛我也就不再给你去讲了,大家下去以后,你可以按照类似的这种方式呢,给他做一个测试啊,你自己去试一试。明白了吧,啊,都比较简单的啊好,这是我们的类似的。
我来说两句