【字幕】恋上数据结构与算法之016动态数组04clear

所有的元素,你觉得这个清除的所有元素怎么做?同学们在我们目前的情况看来,一句话就搞定,一句代码就搞定,一句代码就搞定。刚刚有同学提到重新创建这个数组,没有这个必要,太浪费了,没有这个必要,真的没有这个必要,直接size等于0就可以了。为什么呢?你想想,因为你只要size等于0,你只要size等于0,别人get的时候是不是就是拿不到之前那些元素的?

因为有些同学可能会想怎么想呢?比如说啊你看啊我我之前假设里面放的有数据,我之前里面放的有数据对不对?好,那你现在别人调用了这个颗粒啊,那颗粒啊不就代表把所有数据删掉吗?那把所有数据删掉是不是需要把他们都给挖空呢?不需要不需要你想想,你只要size等于0就可以了,为什么?

因为只要你size等于0,你思考一下,不管不管别人是钙磷还是钙磷,甚至是钙二32,他都无法访问你之前这些数据的,为什么?因为他调用这个get跟set的时候,我在里面都做了拦截,只要你是大于等这个size的直接抛异常,所以相当于就是只要你把这个size给控制住了,把size给控制住了,别人就根本没办法去访问你之前的那些残留的数据。

所以对别人来说,同学们对别人来说是对这个对这个偶然类似的,对这个动态数组的使用者来说,在他眼里你真的清除掉了,其实我里面是没有清除的,只是塞子的问题,但是在他看来,他使用盖使用塞的时候给他感觉就是清楚了,所以这个我们自己写的框架,我们自己写一个类是提供给别人用的,我们自己内部怎么实现,别人不用关心,但是我们只要保证别人在使用我们接口的时候,语义是正确的就行了。

什么叫语义正确?他使用的可利啊在他看来就真的要清空,到时候他get set就无法无法get无法set,这个叫语语义正确就行了。

所以这个框架内部怎么设计的,跟外面怎么使用的是两回事。好,有同学又说到这,你这不是浪费内存吗?不是的,这怎么可能是浪费内存呢?因为你思考一下,你难道可列完之后你就不用往里面加东西了吗?你可列完之后你就不用往里面加东西了吗?你想想鼻炎颗粒丸下次肯定还要往里面加东西的,比如说来个爱的10,或者说来个爱的99,来个爱99怎么做?

很简单,这个时候你

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值