最新要闻
- 育碧CEO让员工少花钱多做事 巴黎工作室将罢工抗议
- 苹果上海被强制执行1.44亿:这么多年还是第一次
- 世界通讯!微软否认“万人大裁员”:纯属谣言
- 天天讯息:7岁男孩爱撕倒刺致手指感染 医生提醒:处理不当会引发骨髓炎
- 全球今亮点!春节正常发货:仁和N95灭菌级口罩25片15.9元大促
- 世界要闻:网友3美元淘了一颗废品锐龙9 5900X:掰正针脚 点亮!
- 王晶武侠电影 《天龙八部之乔峰传》明日首映:年三十三大视频平台上线
- 全球时讯:平民也能玩8GHz超频 技嘉B760主板奉上两大绝技:内存延迟大降7ns
- 被偷家了!德国人不买大众 把美系车特斯拉买成销冠
- 12nm后 DRAM怎么办?EUV光刻也不是万能药
- 每日时讯!安徽一劳斯莱斯婚车撞上石墩受损严重 博主:可向设置限宽人员索赔
- 《蚁人3:量子狂潮》角色海报发布 蚁人女儿貌美如花
- 象是哪个少数民族的生肖?十二生肖儿歌顺口溜
- 释迦牟尼佛成道日是哪一天?释迦牟尼佛的故事
- 国税地税税种有哪些?国税地税税种比例怎么分?
- 家有恶邻后面一句是什么?家有恶邻居怎么办?
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
天天短讯!读编程与类型系统笔记10_泛型算法和迭代器
(相关资料图)
1.常用算法
1.1.map()
1.1.1.接受一个T值序列和一个函数(value: T) => U,将该函数应用到序列中的全部元素,然后返回一个U值序列
1.1.2.别名
1.1.2.1.fmap()
1.1.2.2.select()
1.2.filter()
1.2.1.接受一个T值序列和一个谓词(value: T) => boolean,并返回一个T值序列,其中包含谓词返回true的所有数据项
1.2.2.别名
1.2.2.1.where()
1.3.reduce()
1.3.1.接受一个T值序列、一个T类型的初始值,以及将两个T值合并为一个值的操作(x: T, y: T) => T
1.3.2.当使用该操作把序列中的全部元素合并起来后,它返回一个T值
1.3.3.别名
1.3.3.1.fold()
1.3.3.2.collect()
1.3.3.3.accumulate()
1.3.3.4.aggregate()
1.4.any()
1.4.1.接受一个T值序列和一个谓词(value: T) => boolean
1.4.2.如果序列中的任何一个元素满足谓词,它就返回true。
1.5.all()
1.5.1.接受一个T值序列和一个谓词(value: T) => boolean
1.5.2.如果序列的全部元素满足谓词,它将返回true
1.6.none()
1.6.1.接受一个T值序列和一个谓词(value: T) => boolean
1.6.2.如果序列中没有元素满足谓词,它将返回true
1.7.take()
1.7.1.接受一个T值序列和一个数字n
1.7.2.它返回的结果序列由原序列的前n个元素构成
1.7.3.别名
1.7.3.1.limit()
1.8.drop()
1.8.1.接受一个T值序列和一个数字n
1.8.2.它返回的结果序列包含原序列中除前n个元素之外的所有元素
1.8.2.1.前n个元素将被丢弃
1.8.3.别名
1.8.3.1.skip()
1.9.zip()
1.9.1.接受一个T值序列和一个U值序列
1.9.2.它返回的结果序列由T和U值对组成,实际上是把两个序列组合了起来
1.10.其他算法
1.10.1.order()
1.10.2.reverse()
1.10.3.split()
1.10.4.concat()
1.11.库算法
1.11.1.在Java中,它们包含在java.util.stream包
1.11.2.在C#中,它们包含在System.Linq命名空间中
1.11.3.在C++中,它们包含在标准库头文件中
1.11.3.1.C++现在越来越倾向于使用范围
1.11.3.2.通过更新算法,使其接受范围作为实参,并返回范围
1.11.4.JavaScript的underscore.js包和lodash包
1.11.5.把大部分循环替换为调用库算法
1.12.经验准则
1.12.1.自己在编写循环时,应该检查是否有库算法或者管道能够完成相同的工作
1.12.1.1.库算法被高效实现并且经过实践证明,而且因为能够明确表达所做的操作,所以我们的代码也更加容易理解
1.12.2.并不是所有数据结构都支持特化的迭代器
1.12.3.如果确实遇到了使用可用算法无法解决的问题,则应该考虑为解决方案创建一个泛型的、可重用的实现,而不是特定的、一次性的实现
1.13.实现流畅管道
1.13.1.一个流畅的API来把算法链接成管道
1.13.2.流畅的API是基于方法链的API,可以使代码更加容易阅读
1.13.3.方便地从左到右阅读,而且我们能够用一种非常自然的语法,链接任意多个算法来构成管道
1.13.4.缺点
1.13.4.1.包含了所有的算法,所以很难扩展
1.13.4.1.1.C#提供了扩展方法,可以用来向类或接口添加方法,而不必修改其代码
1.13.4.2.如果它是库的一部分,那么调用代码在不修改类的情况下,很难添加一个新的算法
2.约束类型参数
2.1.约束告诉编译器某个类型实参必须具有的能力
2.2.一旦要求泛型类型上必须有特定成员,就使用约束将允许类型的集合限制为具有必要成员的那些类型
2.3.哈希集合
2.3.1.类型T需要提供一个哈希函数,该函数接受T类型的一个值,返回一个数字,即其哈希值
2.3.2.Java的顶层类型Object有一个hashCode()方法
2.3.3.C#的顶层类型Object有一个GetHashCode()方法
3.大O表示法
3.1.当函数的实参趋近于特定值n时,执行该函数需要的时间和空间的上界
3.2.时间上界
3.2.1.时间复杂度
3.2.2.常量时间,或O(1)
3.2.2.1.函数的执行时间不依赖于它需要处理的数据项个数
3.2.2.2.例如:函数first()取出一个序列中的第一个元素
3.2.3.对数时间,或O(logn)
3.2.3.1.函数的输入在每一步减半,所以即使对于很大的n值,它的效率也很高
3.2.3.2.例如,在排序后的序列中进行二分搜索
3.2.4.线性时间,或O(n)
3.2.4.1.函数的运行时间与其输入成比例。遍历一个序列需要的时间是O(n)
3.2.5.二次方时间,或O(n2)
3.2.5.1.其效率比线性时间低得多,因为运行时间的增长比输入规模的增长快得多
3.2.5.2.序列上的两个嵌套循环的运行时间为O(n2)
3.2.6.线性代数时间,或O(nlogn)
3.2.6.1.不如线性时间高效,但是比二次方时间高效
3.2.6.2.最高效的比较排序算法是O(nlogn)
3.2.6.3.不能只使用一个循环排序一个序列,但能够做到比使用两个嵌套循环更快
3.3.空间上界
3.3.1.空间复杂度
3.3.2.常量空间,或O(1)
3.3.2.1.在输入的规模增长时,函数不需要更多空间
3.3.2.2.max()函数需要额外的内存来存储正在计算中的最大值和迭代器,但无论序列有多大,函数需要的内存量是固定的
3.3.3.线性空间,或O(n)
3.3.3.1.函数需要的内存量与其输入的规模成比例
3.3.3.2.二叉树遍历就是这样一个函数,它将所有结点的值复制到一个数组中,以提供树的迭代器
4.常用迭代器
4.1.输入迭代器
4.1.1.能够遍历序列一次并提供其值的迭代器
4.1.1.1.允许读取值
4.1.2.不能第二次重放值,因为值可能已经不再可用
4.2.输出迭代器
4.2.1.能够遍历一个序列并向其写入值的迭代器,它并不需要能够读出值
4.2.1.1.允许设置值
4.3.前向迭代器
4.3.1.可以向前推进、可以读取当前位置的值以及更新该值的迭代器
4.3.2.可以被克隆,推进该迭代器不会影响该迭代器的克隆
4.3.3.能够遍历一个序列任意多次,并修改序列
4.4.双向迭代器
4.4.1.具有前向迭代器的所有能力,但除此之外,还可以递减
4.4.2.既可以前向,又可以后向遍历序列
4.4.3.泛型reverse()
4.5.随机访问迭代器
4.5.1.能够以常量时间向前或向后跳过任意多个元素
4.5.2.能够实现最高效的算法,提供这种迭代器的数据结构相对较少
4.5.2.1.双向链表不能支持随机访问迭代器
5.自适应算法
5.1.为功能较少的迭代器提供了更加通用的、效率相对较低的实现
5.1.1.一个低效,但是对迭代器要求较低的版本
5.2.为功能较多的迭代器提供了更加高效的、没那么通用的实现
5.2.1.一个高效,但是对迭代器要求更高的版本
-
天天短讯!读编程与类型系统笔记10_泛型算法和迭代器
1 & 160;常用算法1 1 & 160;map()1 1 1 & 160;接受一个T值序列和一个函数(value:T)=>U,将该函...
来源: 天天短讯!读编程与类型系统笔记10_泛型算法和迭代器
精选!【K哥爬虫普法】辛苦钱被中间商抽走八成,还因此锒铛入狱
育碧CEO让员工少花钱多做事 巴黎工作室将罢工抗议
苹果上海被强制执行1.44亿:这么多年还是第一次
世界通讯!微软否认“万人大裁员”:纯属谣言
天天讯息:7岁男孩爱撕倒刺致手指感染 医生提醒:处理不当会引发骨髓炎
全球今亮点!春节正常发货:仁和N95灭菌级口罩25片15.9元大促
世界要闻:网友3美元淘了一颗废品锐龙9 5900X:掰正针脚 点亮!
王晶武侠电影 《天龙八部之乔峰传》明日首映:年三十三大视频平台上线
Appuploader内测版本详解
热点评!使用Python的一维卷积
全球时讯:平民也能玩8GHz超频 技嘉B760主板奉上两大绝技:内存延迟大降7ns
被偷家了!德国人不买大众 把美系车特斯拉买成销冠
12nm后 DRAM怎么办?EUV光刻也不是万能药
每日时讯!安徽一劳斯莱斯婚车撞上石墩受损严重 博主:可向设置限宽人员索赔
《蚁人3:量子狂潮》角色海报发布 蚁人女儿貌美如花
象是哪个少数民族的生肖?十二生肖儿歌顺口溜
释迦牟尼佛成道日是哪一天?释迦牟尼佛的故事
国税地税税种有哪些?国税地税税种比例怎么分?
家有恶邻后面一句是什么?家有恶邻居怎么办?
最资讯丨学习笔记——AOP-代理模式
Python使用pyppeteer搭建网页截图api
三星移动硬盘质量怎么样?三星移动硬盘打不开怎么解决?
帅康燃气灶怎么样?帅康燃气灶打火后松手就熄灭怎么解决?
qq服务器拒绝发送离线文件是什么意思?qq服务器拒绝发送离线文件怎么办?
什么八字的人长得好看?什么八字的人长得丑?
光波炉的危害有哪些?光波炉与微波炉的区别
移动硬盘目录损坏如何恢复?移动硬盘目录损坏解决方法
今日快讯:官宣:F1中国站无缘2023赛季 已连续4年缺席
世界热文:开发预算突破7亿!网易400人团队“超级项目”《逆水寒》手游获批版号
天天快报!2023全球品牌价值500强出炉:苹果跌至第2 抖音杀入前10
全球观察:买一赠一:腾讯视频京东Plus会员联名年卡148元大促
《魔兽世界》电子骨灰盒出现bug:下载存档错误 账号被锁定
全球快消息!APM vs NPM
排面!小米登上《人民日报》头版
情侣拍照时戒指不慎掉入洱海 男生立即跳湖寻找:官方回应太危险不可取
天天热文:吃播账号“浪胃仙”被判属原公司:创始人涉职务侵占被捕
全球今日讯!学习笔记——Spring中组件扫描(包含扫描、排除扫描)、Spring中完全注解开发;Spring整合Junit4步骤
10辆特斯拉新车高速上集体燃烧 只剩一堆废铁架子
美国科技巨头依然寒气逼人 微软即将裁员:1万多人丢了工作
每日消息!《最后生还者》热播 收视率仅次于《龙之家族》
全球百事通!别人“借钱不还”怎么办?网友公布微信妙招 赶紧学起来
全球快资讯丨1月23日国服停!双方谈崩 网友吐槽暴雪绿茶:网易后到底谁来接盘?
世界热资讯!冬天加油枪都被冻住了 网友吐槽:国六B汽油里水加多了
当前关注:彻底闹掰!网易:暴雪提议蛮横 不符合商业逻辑
天天速看:价值10万土壤被快递弄丢 或致无法毕业 中通:找不到愿赔1000元 后续来了
央视点赞比亚迪:不惧冰雪 用技术发力高端
【天天时快讯】网友抱怨小米13前摄开孔太大!雷军回应:升级了3200万像素 无短板
数据类型的内置方法 可变类型与不可变类型
每日视讯:P1352 没有上司的舞会+P1122 最大子树和(树形DP入门)
丰收1年 挥霍掉400年的积累!东北黑土地不“黑”了
世界视讯!小米13打破安卓手机亮度纪录!雷军:显示效果特别好
环球微资讯!《魔兽世界》电子骨灰盒今日上线 网易提醒:小心安全隐患
三星旗下SEMES前员工窃密:卖给中国企业 获利6.5亿元
世界视讯!强制使用自家支付系统!苹果摊上事:俄罗斯开出12亿卢布罚单
设计模式之模板方法模式和策略模式
语音助手-智能家居
今日要闻!4K分辨率能否吼得住 RTX 3070Ti版戴尔游匣G16游戏挑战
世界最新:索尼独大的CMOS市场:;两匹中企黑马杀出来了
当前快看:年轻人第一辆车来了!传雷军亲自试驾小米汽车 标准三厢
当前关注:学习笔记——Servlet底层源码分析;Servlet接口;ServletConfig接口;
当前观点:宋浩老师专升本
全球速看:MySQL笔记01: MySQL入门_1.1 MySQL概述
速递!笔记本也不行了 将交出10年最差成绩单
天天快资讯:官方揭秘中国空间站:13年前秘密启动!至少用10年
【新要闻】专利暴露苹果野心!未来苹果全家桶将支持卫星通信
世界播报:漫威宇宙归来!两部大片《黑豹2》《蚁人3》国内定档:预告看个爽
全球最新:学习笔记——Spring中的注解;Spring中装配对象的注解;使用注解配置对象中属性
当前头条:node-sass安装问题
焦点热讯:2023首批版号出炉!米哈游双端大作《崩坏:星穹铁道》获批
讯息:特斯拉股价大跌!马斯克甩锅:未来可能跌得更狠
新动态:靠“车震”充电?宝马最新专利整活
世界观点:官方回应2000元帐篷房像45元招待所属实:游客称被气晕过去 双方已谅解
全球热讯:宏碁推出Nitro XV5 4K显示器:可超频至200Hz高刷
今日最新!LeetCode刷题:343. 整数拆分的完全背包写法解析
焦点报道:AcWing. 1073 树的中心
环球热点!湖北襄阳五分钟内连发两次地震:无破坏性 官方科普地震如何逃生
每日资讯:VScode和cmake的组合拳
手机硬件光追 为啥一直是PPT?
世界快资讯丨骁龙888站起来了!小米11系列MIUI 14稳定版就绪:流畅度暴增
简讯:《三体》电视剧第五集惊现《GTA》地图 网友:梦幻联动、双厨狂喜
滴滴回来了!但没有掌声
车主注意!今日起 全国严查酒驾醉驾
【天天报资讯】计算机基础 数据类型 流程控制 字符编码 文件操作
【新视野】ARP欺骗攻击:利用driftnet截获图片数据流
环球新消息丨剧毒蓝环章鱼再现 网友:山姆超市买的、没吃直接给扔了
今晚油价下调!春节出行加满一箱油将少花八元
全球今热点:日系车后期果然省钱!丰田10年维保花费4万元 美国车最低
环球短讯!25年经验资深机长驾驶 3D还原尼泊尔客机坠机过程:让人后怕
当前报道:三星Galaxy Book 3 Pro 360笔记本来了:12核i7 还有3K触摸屏
环球焦点!portswigger 靶场之 XSS 篇(上)
每日快播:JavaWeb开发中在服务器常用命令集锦
今日热文:学习笔记——Spring管理第三方bean;Spring中Bean的作用域;Spring中Bean的生命周期;Spring中bean的后置处理器;Sp
程序员同事每天准点下班,原来是用了这6个开发工具
【NAS使用心得】使用Synology Photos管理照片
【环球新要闻】70多岁大爷开40万极氪001买菜 直言此前开的奔驰真是垃圾
万茜吐槽自己游戏手法不行!网友发现本人玩的是《剑网3》
网易云音乐TV版发福利!150小时电视端会员听歌时长免费领
赵长江:腾势D9时速120km轮胎被磕到、车身稳如泰山
iPhone印度造:要跟我们平分蛋糕!