00:00
我们继续来学习下面内容,下面就是更新元素,这个呢,我说一下比较简单,呃,首先更新元素呢,我们用的是me table,添加删除,我们都是针对MU table这个啊,所以说看这里,那么如果我们要更新一个元素,非常的简单,就是把这个K写到这,再加一个值就完事了。那这里面我有个说明,如果这个map是可变的,才能修改,如果你是不可变的,我告诉大家啊,连值都不能改。啊,连值都不能改,那这点其实我有点也不是特别好理解,就是说你你你table改和值应该还是可以,但是他不让改啊,他不让改,那你那也别去管它了啊,不让改就算了,那么map呢,是可变的才能修改,否则报错。第2.k存在,我们就相当于修改,那么如果K不存在呢,就等价与添加,也就是说map的这种方式很简洁,它是把更新和添加融在一起了。这种这种方式,呃,很多语言里面都有,我记得呃,像这个,呃,MYSQL里面好像也有一种操作,就是更新的时候,如果存在就更新,如果不存在就添加啊,好像也有这种类似的操作,你们可以去看一下,有个指令叫insert or update啊,那种指令可能有些同学用过,有些同学没有用过。
01:21
好,那么这种这种机制呢,就让它简洁了啊,就是如果有K就更新,没有K就添加啊,这个呢大家知道啊,这个我就给大家说一下就OK了,那现在就是。啊,修改添加删除,我放在一个章节夹。好,这个map将来是你们用的特别特别多的啊,同学们,为什么我在这花了这么多时间来讲这个玩意,就是因为你们将来重点就是集合啊,你们将来重点全世界,因为你18个在内存里面跑,你你你总得存存数据吗?好,这个呢,我给大家演示一下吧,那我这偷个懒啊,直接跑一下就完事了。
02:01
好,同学们直接给他跑一下map,好的,这个map是它这你看me table,他直接找到哪个去呢?他直接给你找了这找找了两个是吧,那换一个吧,同学们五。换一个五,换一个五。这样呢,就O了,同学们看这个时候我们这样去运行呢,因为你这个AA不存在,其实就相当于添加了啊,相当于添加啊,那么我们看是不是这样子的跑一个,诶给大家运行一下啊。MAP5A map5等于一个什么呢?哎,就等于刚才这个就增加运行一下看一下。这个时候呢,ABC还有一个A加进去了啊加进去了,那如果说我给这个A是存在的,那它就会把这个对应的一改成20,看效果。哎,看效果,这个时候你会发现它的确改了,好这个逻辑呢,大家有一个基本的认识,好呃,这就说到这儿了啊,说到这儿,那么我把这个更新给同学们板述一下,简单的很。
03:08
更新map,先讲的是更新map。好,那么更新map的这个代码和说明写一下。代码演示。代码演示,那代码呢,我直接放这这一个小节好两个部分,一个是代码。啊,代码就是刚才我写的这段代码很简单。给同学们粘贴复制到这个地方。好,还有一段呢,就是这个小结,小结呢就是刚才我说的这这两句话拿过来就可以了。整理到这啊,同学们,一个是修改它的一个前提,好,还有这K存在就是修改对,那么K不存在呢,相当于添加完事了。完事了,好,这个是我们讲的更新,把添加也顺带说了。那么我们再来看map,除了这种操作,还有哪种添加方式呢?也非常的丰富。
04:04
这里面又涉及到这么两种方式,大家看一下啊。那么因为map你是可变的,所以说我可以加的。加这个呢,其实就相当于增加了一对k value。KY6,那么注意啊,这种方式其实大家也大家也这个地方我又又加了一个,又加了一个,好,我们来跑一下,看看能不能增加,这是增加单个元素,如果一次性的要增加多个元素也可以,怎么办呢?那你就这样子说的,这样可以写多个。啊加等多个一组一组的也可以这样加,就是看刚才我们写的这个案例。这个案例我只是加了一组,下面这个加两组,也就是说你你要增加两个呢,后面再打一个逗号。然后直接再写K86就行了,好,这个也很好理解,对吧,很好理解,就增加单个元素,增加多个元素,我都说了,非常简单,好这个呢,我就干脆呃不走代码了啊,同学们应该也能很轻松的理解。
05:06
好,我把这个呢给大家反述到这里,好吧,诶,就是我们添加麦补元素的这么一种方式,一种是单个元素的增加,干脆截过来啊。干脆就寄过来。没有太多需要你理解的地方,还有一点,我这提了一个问题,大家思考一下。当我们进行添加的时候,就明确要添加的时候,这个K已经存在了,会怎么办呢?哎,其实就是更新了啊,其实就是更新了,好这个地方呢,我们来测一下,把这个做一个简单的一个测试。就是就是刚才我提的这么一个逻辑。啊,如果你在添加的时候,这个K已经存在了,会怎么办?我就直接上这个案例了。同学们看麦五。对甲等。甲,等起来,我加一组A。
06:04
一。好,那这个时候呢,我们发现啊。这个加等他哪错了什么。好。诶,我这个甲等的为什么跑不起来了,加等。啊,是个是个箭头啊,怎么回事啊,这都忘了,好,你看这加的是个箭头,那这个时候假如说这个K存在,假如我写了一。一一百啊同学们,我们来运行一下好,运行100,我们来看看这个时候它会怎么样呢?它会报错吗?我们看会不会报错啊,我发现它并没有报错,直接更新了啊正确的,如果你这个K不存在呢,那就是真正的加进去了,好这个呢,我们在这做一个小小的说明。这做一个。一个说明啊。说明,那么说明什么?当添加增加一个这个k value的时候,K value的时候,如果啊,如果这个K存在了,存在就是更新。
07:09
啊行,那如果不存在,那就是添加了啊,如果不存在,不存在则是添加没问题。啊,则式添加很简单,则是添加好,那么关于这个添加呢,我们就聊聊到这里,下面删除元素。那既然有这个添加,必然就删除,因为我们这个new table呢,它是可变的,因此它支持删除,支持删除只需要写K,不需要显示。简单,你看这个map简等后面,你可以把这个K写上就干掉了,那么如果有一个问题,K如果不存在会怎么样呢?告诉大家K不存在也不会报错,就有点类似于你们学MYSQL数据库,同学们,你们学MYSQL数据库的时候,你们应该学过这样的语句,比如说。
08:01
Delete from一个表名表的名字表明表啊表where,诶,就写错了表,然后where where,比如说ID等于100,这是一个啊,Circlel语句,假如这个ID存在,我们就把它干掉了,假如这个ID不存在,是不是也不会报错呀?哎,你看直接说你删掉没事,就好像有一个人到我们班上来找,说我要干掉一个。对吧,张三,结果我们把没有姓张三的就走了,对吧,他也不会把我们干掉,所以说他就走了,这个道理很简单,就说没删掉就算了,也不会报错啊,它只是可能会返回一个,比如说受影响的行数为零嘛,仅此而已。好同学们,这个呢,我就聊到这里啊,不,不多说了,就说删除K不存在,也没没没没事,好,这个删除呢,我就给大家整理到这里,我们待会呢,跑一个小案例看一下就行了。这些都非常简单啊,同学们都非常简单,只是呢,简单归简单,你不说呢,那你那你还是不知道啊,所以说还是要给他。
09:04
聊聊下的。这一体系,完整的说一下案例。代码写了啊,这是我们的代码。这个是我们的,哎,这是我们的说明,说明呢,我说了两点,这个K这方可以写多个,我给大家跑一下啊,我们就以这个为例。再给他演示一下,删除。9MAP5。那IPA因为你是可变的,我直接这样简等就行了,减等,然后呢,这这后面直接写上我要删除A这个K,还要删除B这个K啊这样就可以,当然你有些同学不喜欢这种写法呢,你也可以这样写也行啊注意啊,注意再说一遍,这这个地方有一种写法是不行的啊,有有同学他认为这个写法。它等价于这个写法,我们看这样行不行。MAP5件这种写法行不行呢?我们来看看啊,这种写法,看看它支不支持。
10:04
好,我们可以了,直接就报错,不报错的原因我们可以看一下。他直接告诉你MAP5是一个value的Val的,那么有些人说是我如果直接定一个别的呢,大家看这定个别的这个就可以了,那有同学一定对这个很很奇怪,说老师你这个写法不是一样的吗?说你这个写法不是一样的吗?你这个以前讲的左负值不就是map减到这个再给他吗?注意啊,你map不是写的V的,不能够复制给他。当然有同学要要犯嘀咕了,说老师那不对,你底层这个不是也做了吗?注意啊,底层人家是做了转换的。底层要做了转换,因为底层这个减,这个看起来这个减,其实它是一个。方法的,它下面做了一系列这个操作的啊,他有方法,这里面还有一些代码是直接给我们进行这个,这里面往下推,他还有还有这个处理的。
11:01
看到没有,不停往下坠,这看到这咱们就看不到下面是什么东西了,也就是说它底层是做了一系列包装的,不能简单的理解啊,就是说人人家就是这样去处理的,好,所以说呢,大家这个地方要要注意,不能简单的认为这个是这个写法,那语法是过不去的啊好这个呢,它整个这个对这个VR的处理,它是在底层做了一个,做了一个,做了一个包装啊,做了一个新的处理啊,做了一个新的处理。好,这个呢,我们就就知道就行了,不要跟他等价就行了,讲到这啊好,嗯,这个呢,我们案例来跑一个麦普五。麦五等于加一个麦普五跑起来,请看运行的效果,那只剩下孤零零的这个C了。啊,C就留下来,其他就没有,那么如果说我在这里加了一个不存在的K,好,同学们可以看到,也并不会报错。
12:02
也并不会报错,那么没有异常报错,好,知道这个就行,我把这个代码呢给同学们板说到这里。啊,非常简单的一段代码。啊,非常简单的一种代码。好,这是我们说的这个减啊,说的这个减。好,这是删除元素,下面呢。好,我们来。截取一段视频。删除就讲完了。
我来说两句