美文网首页
极客时间11天打卡

极客时间11天打卡

作者: 随手点灯 | 来源:发表于2020-04-09 16:16 被阅读0次

今天学习的设计模式之美的迭代器模式,主要分了三篇来讲.

一般情况下,迭代器模式都是一门编程语言提供了,用来遍历基本的数据结构,迭代器模式又被叫做游标模式.

首先对于线性数据结构,已经可以顺序for循环遍历,为什么要设计一个迭代器呢?

因为数据结构除了有线性数据结构还有非线性的,比如Tree和图,对于这些数据结构for循环是实现不了的.

然后迭代器模式抽象为接口,降低了代码的耦合度,提高了可扩展性.

第二节课就是将List为什么会有并发修改异常,我们在遍历迭代器的时候,如果是数组类型,删除了一个元素,为了保证数据结构的一致性,数组中的数据会向前面移动,移动之后呢,那么指针就会发生变化,就有可能迭代器迭代出来重复的元素或者是缺少了元素.

如何实现的呢?

我们想要避免这种情况,有两种解决方式,一种就是迭代器迭代结束前都不允许修改集合,还有一种就是如果你正在迭代的话,发生了修改元素,那么就抛出异常,终止迭代.

在ArrayList里面有modCount就是修改次数,在Itertor里面有一个expectCount,如果用集合的add或是remove方法,modCount变了,用迭代器的时候会发现modCount和ExceptCOunt不一样,那么就会抛出并发修改异常.

但是如果你用迭代器的remove()方法,就会同时修改modCount和exceptCount,下次迭代就不会出现了.

所以我们要使用迭代器的remove()方法,了解了原理,知道并发修改异常就行了.

最后第三节课讨论了一个不存在的场景,争哥想告诉我们什么呢?

就是一篇文章看懂了是没有用了,没有任何收获,如果你思考了,那么就会有一点点的收获,如果你去实践了,你的收获就会多那么一点点,如果你做到了,你才是真正掌握了.

另外就是编程是一门手艺活,要多联系.

想想我们做传统手艺的时候,比如弹琴,唱歌,有老师教的,有上课,上完课之后做什么呢,不就是多练习吗

天天看技术文档,但是如果不练习的话,还是没有掌握这些知识,一方面要多思考,把一些问题当做是面试题去思考,另外就是要练习.多运用到工作当中去.

相关文章

  • 极客时间每日打卡小记

    最近在极客时间APP上参加21天打卡活动,虽说21天是否能养成习惯还不确定,但坚持了5天下来,有些收获,和你分享一...

  • 极客时间11天打卡

    今天学习的设计模式之美的迭代器模式,主要分了三篇来讲. 一般情况下,迭代器模式都是一门编程语言提供了,用来遍历基本...

  • 极客时间-技术编程类课程产品分析报告

    【极客时间】 极客时间是极客邦科技出品的IT类知识服务产品,内容包含专栏订阅、极客新闻、热点专题、直播、视频和音频...

  • 极客时间

    《极客时间》程序员时间管理的笔记 JIT的理解 编译和解释的区别。 jdk8函数式编程 23种设计模式,是道与术的...

  • 极客时间

    微信搜索公众号:矿洞程序员。回复:极客时间

  • 极客时间

    我的已购专栏。 左耳听风 黄勇的OKR实战笔记 Kafka核心技术与实战 OpenResty从入门到实战 Java...

  • 极客时间,课程优惠码

    1.极客时间代码精进之路优惠码 极客时间Andorid开发高手课优惠码Android开发高手课 3.极客时间趣谈网...

  • 极客时间第2天打卡

    打卡内容

  • 极客时间第3天打卡

    今天学习了争哥的行为型设计模式. 观察者设计模式:同步的,异步的,同一个进程的,不同进程之间都可以用到观察者模式....

  • 极客时间第5天打卡

    打卡 今天学习了争哥的数据算法之美,链表的相关知识. 过去我对算法几乎是不太懂的,,争哥的算法教程写的很好. 而且...

网友评论

      本文标题:极客时间11天打卡

      本文链接:https://www.haomeiwen.com/subject/dpicmhtx.html