Swift 集合的 reduce 操作
一位朋友问我:「在对集合执行 我们就如何实现这一点提出了一些想法。在获取所有项目(item)之前,是否需要对集合进行检索呢?(答案是不需要)数据集是否会过于庞大,以至于不可能在创建集合之前将中间结果存储到数组当中?(答案是不会)。 我构建了一套测试,首先尝试他的 timetest("initializer") { // 0.652348856034223 var x: Set<String> = [] (1 ... 5_000).forEach { _ in x = Set(letters) } } timetest("union") { // 0.524669112986885 var x: Set<String> = [] (1 ... 5_000).forEach { _ in x = x.union(letters) } } timetest("insert") { // 0.572339564969297 var x: Set<String> = [] (1 ... 5_000).forEach { _ in x = [] letters.forEach ({ x.insert($0) }) } } timetest("reduce") { // 0.762973523989785 (1 ... 5_000).forEach { _ in var x = letters.reduce(Set<String>()) { $0.union(CollectionOfOne($1)) } } } 这结果令我感到惊讶,因为您可能会觉得 不过我不感到惊讶的一点是:比起将中间数据存储在数组当中并籍此来直接构建集合,使用
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Heritrix1.14源码分析(3) 修改配置文件order.xml加快你的
- Oracle 更改归档文件到ASM磁盘
- 我所理解的Cocos2d-x 全新的Cocos2d-x3.0
- Swift语言计算属性简单理解
- ruby-on-rails – 为开发/测试和生产指定两次相同的gem,但路
- ruby-on-rails – 在docker中没有安装私有宝石
- postgresql – osm2pgsql:函数AddGeometryColumn不存在
- flex – 从itemRenderer调用父函数
- ruby-on-rails – Rails:为什么“has_many …,… through
- 不要依赖代码中的异常