00:00
好,那咱们现在可以为list集合类型的属性赋持了,那我们是不是这个咱们常用的这个集合,是不是还有个map集合对不对,你看我们在咱们讲这个MY的时候,咱们说了这个map集合啊,它可不比例的集合用的少。然后咱们的map集合是键值,对对吧,因为我们平常咱们一般都是这个使用实体类比较多,比如说我们现在咱们要把一条数据查询为一个实体类对象,但是咱们说了,如果你查询出来的结果没有相对应的实体类类型,那我们就要用谁呀,用map集合OK吧,好,那大家之前在学习web的时候,应该也是web的时候是不是也有一个地方咱们也要用map,什么时候啊,比如说我们现在咱们通过阿贾克斯向服务器去传输了一个杰森格式的请求参数,那我们是不是可以通过咱们处理杰森的一些价包,就比如说。杰森,然后还有fast杰森,然后还有咱们的杰克森,像这些JA包,将咱们当前杰森格式的请求参数转换为我们的Java对象,那我们一般转换的是不是就是我们的转,一般咱们都要把它转换为实体类对象,但是如果没有相对应的实体类,那你怎么办?那咱们这个时候也要用map集合,知道吧,所以说这个map集合以后我们用的也是很多很多的啊好。
01:24
那咱们这样吧,咱们下面咱们再来这个给大家扩充一下咱们这个案例啊,然后咱们在这再创建一个类,叫什么叫叫teacher啊,就是老师,然后呢。这里面大家注意,咱们来设置两个属性,一个叫一个叫TD啊,就是老师的编号,然后还有一个是string类型的叫t name OK吧,好,然后咱们来给它设置它的有参构造,然后咱们再来设置无参构造,然后咱们再来设置get跟set方法,然后还有就是咱们的to方法,OK啊好,设置完之后我要干什么?我现在我要在学生这个实体类里面再给它添加一个新的成员变量,然后叫啥是一个map集合。
02:13
然后它的键看好是string,然后它的值大家注意啊,然后是我们当前的一个老师对象,叫做OK吧,报错,那说明我们当前的map有多个,他不知道该选哪一个,知道吧,好,那咱们在这就叫做teacher map就行,然后下面同样的我们要来给他添加get跟set方法,当然其实呢,你只需要添加set方法就行,但是一般咱们get跟set都是一块设置的,OK吧。好,然后最终咱们把这个to string方法呢,咱们也给他重写一下,OK。来吧,然后大家知道什么意思,不就是说我现在我的student里面又多了一个成员变量,叫做什么map集合,然后叫teacher map,那所以我们再把student交给IOC容器来管理的时候,那我们是不是也要为这个map集合类型的属性赋值,对不对?
03:09
那这个时候咱们应该怎么做呢?大家注意啊,来找到一个学生。比如说这个student five对不对,然后呢,我们在这儿,咱们一个property。然后呢,咱们要来赋值的属性叫做t map。然后它也是有两种复制方式,首先第一种呢,大家注意也是在咱们的property标签里边来设置,怎么写啊,看好啊,这里面是不是就有一个map标签。能看懂吧,可不是下面的YouTube map,大家要注意它俩的区别,你的YouTube map是用来设置什么的?设置map集合类型的B跟咱们的YouTube冒号list的功能是一样的,知道吧,所以咱们在这需要用到map。好,那咱们用完map之后,大家都知道这map里面要比list和咱们的数组要复杂,因为数组跟咱们的list里面存储的都直接就是数据,但是map里面存的是什么键值,对。
04:08
好,那这个怎么来设置键值,对呢,大家看你看这里面,你看咱们映入眼帘的就是一个entry entry是什么意思?在咱们的Java中,Entry来表示的是一个类型,它表示的是咱们map集合中的键和值。OK吧,所以说咱们现在就可以通过一个entry,然后来表示什么,来表示我们当前map中的一个键值,对,OK吧,好啊,行,下面大家再来看,你看这几个你认识不认识。Kill。键K-ref来引用某一个B作为键的值value,直接为value赋值value,六杠ref,然后来引某一个B。好,然后来作为value值,所以说这四个属性就是我们要用到的属性,非常简单,如果说你的键是字面量类型,那你就直接用K,如果你的键它是什么呀,类类型的,那我们就用K-ref,如果你的值是字面量类型,咱们就直接用VALUE6,如果说你的值是字面是这个类类型,咱们就用VALUE6跟ref就完事了,知道吧,好OK,那比如说我在这个位置啊,或者说咱们在下面啊,咱们在这我再来设置两个老师信息啊,叫做B,然后ID咱们等于T叫T吧。
05:31
然后他的class就是teacher teacher。好,然后它的属性,比如说TD,然后Y6,咱们给它一个对吧,然后10086对不对,好,然后给它的值叫做T内,然后咱们给他一个叫做大宝,OK,大宝。行,然后我们下面咱们再来一个复制,再复制一个老师的一个对象,然后这个咱们叫做tw two,叫做teacher two,对吧,这个咱们叫做100,幺零这个咱们叫做小宝。
06:07
OK,行,那设置完成之后啊,那大家来看,那我们现在咱们要干什么,那我们是不是就要把这两个学生,把这两个老师对象,然后是不是放在咱们的map集合里面,对不对?那我们现在以什么为建呢?因为咱们在设置这个学老师的时候,咱们用的是一个map集合,键是string,值是teacher,那咱们就把这个老师的ID作为键,然后把咱们当前老师的这个对象来作为值,OK吧,好,那在这怎么写啊,大家说键什么类型,再看一眼哦,键是string类型,那所以说在这咱们要设置键用谁,用K就可以。因为建设字面量类型,所以说直接用K10086好,然后呢,我们要设置值,值怎么设置值是什么类型,Teacher类型,所以说是一个类类型,咱们用什么用value-ref。
07:02
能看懂吧,然后来引用某一个老师对象,然后来为当前的值赋值,来为它的value赋值,那咱们就写个teacher y,好,再复制一个,这个是10010,然后这里面咱们应该叫做teacher two OK,这就完事了。大家注意,这就是我们当前为map集合类型的属性进行复制。很简单的吧,大家要注意ENT垂,一个ENT垂表示一个键值,对,然后这个K表示的是咱们当前设置的键,Value来表示设置的值,如果说你的键是字面量,就用K,如果是。这个类类型,那咱们就用K-ref,如果你的值是字面量,那咱们就用value,如果是类类型,那咱们就用VALUE6-ref OK吧,好,那咱们来进行一个测试,咱们把这个东西啊给它注释掉,然后我们还是来测试咱们的student的five啊好,然后咱们在这一个执行大家看一下啊。
08:02
好,大家看有没有问题,没有问题,看这个teacher map,大家看一下10086等于什么啊,这个10086大宝,然后10010等于10010对应小宝,OK吧,好,这是我们当前为map集合类型的属性赋值的第一种方式,然后下面呢,我们再来看咱们的第二种方式,那什么方式?大家想一下,我们刚才在这里面写map标签的时候,大家没有见到吗?是不是有个U冒号map干啥的,跟咱们的U冒号list是一样的,U冒号list来设置一个list集合类型。集合类型的属性,而YouTube冒和map来设置一个map集合类型的属性,OK吧,那咱们先把这东西给它注释掉,然后下面呢,我们就在这来设置一个map集合类型的属性啊,用什么YouTube map看好了啊,在这呢,然后跟它设置的方式一模一样,咱们在这儿可以给他设置一个ID,然后叫啥叫做teacher,叫teacher map。
09:08
就可以,然后这里面怎么写呢?大家注意啊,看直接就是N垂一样不一样,一模一样啊,看这里面的属性也是一样的,10086,然后value ref是TY,然后咱们再来一个复制,这是10010,然后在这是t two t two OK,好,然后那我们现在咱们不是就可以找到咱们的student five,大家看在这呢,对吧,然后我们是不是就可以来为这个属性互值了,Property teacher map,然后用谁ref直接引用咱们当前这个map集合类型的病就可以啊。能看懂吧,好,下边我们在这咱们再来一个执行,大家看跟它的效果是一模一样的啊。行,那我们这个就是为集合map集合类型的病来扶持,那我们现在呢,咱们也已经把咱们的依赖注入里面。
10:05
把咱们所有能够遇到的这些类型啊的属性,然后该如何进行复制,已经给大家演示过一次了,好,然后大家注意啊,然后这些呢,大家都必须要会,虽然说我们管理B的时候,咱们有基于叉ML的方式,咱们也有基于注解的方式,但是咱们并不是说以后用的都是基于注解的方式嘛,大家注意不是我们以后咱们基于注解和基于插苗的方式是一块来使用的。OK吧,因为大家想你基于注解,你注解是加在哪的,是加在力上的,而咱们当前咱们的叉ML呢,然后咱们是需要写在咱们的这个基于叉ML的,那我们肯定是要写在叉ML中,对不对?如果说是我们自己写的类,我们自己创建的类,那大家去加上一个注解没问题,你可以加,但是如果我们当前用的是第三方的类库,我们当前是要把一个第三方的类交给IOC容器来管理,大家说你能在上面加注解吗?
11:07
啊,你用的第三方类库是是咱们的第三方价包里面,那价包里面它都是点class文件对不对,你能把人家的class文件给改了,加上一个注解吗?加不了啊,所以说叉L的方式和注解的方式咱们都要会,所以说咱们的依赖注入对于各种类型的属性,咱们该如何进行赋值,大家一定要好好的去练习一下,把它练到熟练为止,OK吧,好啊。
我来说两句