Mag*_*ian 18 arrays collections dictionary set swift
我是Swift Lang的新手,看过很多教程,但目前还不清楚 - 我的问题是Array
,Set
和Dictionary
集合类型之间的主要区别是什么?
GJZ*_*GJZ 28
以下是不同类型之间的实际差异:
数组是有效排序的列表,用于在顺序很重要的情况下存储信息列表.
例如,在tableView中显示的社交网络应用中的帖子可以存储在数组中.
在顺序无关紧要的意义上,集合是不同的,并且这些集合 将用于顺序无关紧要的情况.
当您需要确保项目仅在集合中出现一次时,集合特别有用.
字典用于存储键,值对,并且在您希望使用键轻松查找值时使用,就像在字典中一样.
例如,您可以存储项目列表以及指向字典中有关这些项目的更多信息的链接.
希望这可以帮助 :)
(有关更多信息以及查找Apple自己的定义,请查看Apple的指南,网址为https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html)
详细的文档可以在Apple的指南中找到.以下是从那里提取的一些快速定义:
排列
数组在有序列表中存储相同类型的值.相同的值可以在不同位置多次出现在数组中.
组
集合在集合中存储相同类型的不同值,没有定义的顺序.当项目的顺序不重要时,或者当您需要确保项目仅出现一次时,您可以使用集合而不是数组.
字典
字典存储相同类型的键与集合中相同类型的值之间的关联,而没有定义的排序.每个值都与唯一键相关联,该唯一键充当字典中该值的标识符.与数组中的项不同,字典中的项没有指定的顺序.当您需要根据标识符查找值时,可以使用字典,这与使用真实字典查找特定单词的定义的方式非常相似.
旧线程还值得谈谈性能.
使用数组或字典中的给定N元素,当您尝试访问元素或添加或删除对象时,值得考虑性能.
要访问一个随机元素将花费您一样的访问第一个或最后一个,为元素顺序互相跟随,使他们可以直接访问.他们将花费你一个周期.
插入元素是昂贵的.如果你添加到开头,它将花费你1个周期.插入中间,其余部分需要移动.在最坏的情况下(平均N/2个周期),它可能花费你多达N个周期.如果你追加到最后并且阵列中有足够的空间,那么你需要花费1个周期.否则整个阵列将被复制,这将花费你N周期.这就是为什么在操作开始时为数组分配足够的空间很重要的原因.
从开头或结尾删除它将花费您1.从中间班次操作是必需的.平均而言是N/2.
查找具有给定属性的元素将花费您N/2个周期.
因此对大型阵列要非常谨慎.
虽然字典混乱,但它们可以为您带来一些好处.当密钥被散列并存储在散列表中时,任何给定的操作都将花费您1个循环.只有异常才能找到具有给定属性的元素.在最坏的情况下,它可能花费你N/2周期.通过巧妙的设计,您可以将属性值指定为字典键,因此无论内部有多少元素,查找都只需要1个周期.
归档时间: |
|
查看次数: |
15802 次 |
最近记录: |