![]() |
1
104
再一次,我似乎已经回答了我自己的问题,变得不耐烦,并在Freenode的Clojure中提问。在stackoverflow.com上鼓励回答自己的问题:d 我和里奇·希基进行了一次简短的讨论,主要内容如下。
|
![]() |
2
80
如果您已经做了很多Java编程,并且熟悉Java集合框架,请考虑类似的列表。
更进一步的说明:如果你想在序列的前面或后面单独添加项目,一个链接列表比一个向量要好得多,因为这些项目不需要每次都随机排列。但是,如果您希望经常访问特定的元素(不在列表的前面或后面),即随机访问,那么您将希望使用vector。 顺便说一下,向量可以很容易地转化为seq。
|
![]() |
3
36
向量有O(1)个随机访问时间,但它们必须预先分配。列表可以动态扩展,但是访问一个随机元素是O(N)。 |
![]() |
4
28
何时使用矢量:
何时使用列表:
|
![]() |
5
13
只是一个简短的旁注:
"I read that Vectors are not seqs, but Lists are."
序列比列表或向量(或映射或集合)更通用。
sec有一个快捷方式,如果它已经是seq,则返回其参数:
列表是序列,但其他东西也是,并非所有的序列都是列表。 |
![]() |
Freid001 · 具有最小和最大限制的架构? 6 年前 |
![]() |
phlie · Hoplon With Castra加载后端时出错 6 年前 |
![]() |
David Furnam · Clojure从数组中获取坐标 6 年前 |
![]() |
Jeroen · 如何将惰性序列转换为映射? 6 年前 |