gpt4 book ai didi

java - Scala 是否对小型集合使用特殊实现?

转载 作者:行者123 更新时间:2023-12-03 23:01:25 25 4
gpt4 key购买 nike

认为不久前我读到过有关在为少量元素创建集合时使用“特殊”实现的 Scala。例如。对于只有 4 个元素的 List,有类似“List4”的东西可以正好携带 4 个元素,这意味着实现使用固定数量的字段(类似于元组的工作方式有 Tuple1Tuple2Tuple3 ...)。

1.)不幸的是,我再也找不到这些信息了。我刚才所说的我错了吗(也许我把它和另一种语言混在一起了)?

2.) 我提出问题的原因:在 Scala 中,我经常发现自己将集合用于最简单的事情。例如。在检查少量变量的值时,我经常这样做:

def checkCoordinates(x: Int, y: Int, z: Int) = Seq(x, y, z).forall(_ >= 0)

在 Java 中,我绝不会那样做。这主要是因为 Scala(以及一般的函数式语言)中的集合感觉更轻量级,至少在语法方面如此。但是,对于简单任务(如上所示)使用集合的性能观点和习惯又如何呢?

最佳答案

集合已优化,您可以在此处看到:

https://github.com/scala/scala/blob/v2.11.7/src/library/scala/collection/immutable/Set.scala

Set1Set2Set3Set4

map 也采用了同样的方法

https://github.com/scala/scala/blob/v2.11.7/src/library/scala/collection/immutable/Map.scala

对于 SeqList 来说,无论如何(未优化)看起来都创建了一个链表 (::)。

请记住,在分析显示这会导致您的应用程序出现性能问题之前,您不应该真正担心这类事情。

关于java - Scala 是否对小型集合使用特殊实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com