问题标签 [scala-collections]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - 我可以用具有很好变体类型的 TraversableLike.map 的类似物“拉皮条我的图书馆”吗?
假设我想向map
Scala添加类似的功能List
,类似于list mapmap f
,它将函数应用于两次f
的每个元素。list
(一个更严重的例子可能是实现一个并行或分布式地图,但我不想被那个方向的细节分散注意力。)
我的第一种方法是
这现在很好用
当然,它只适用于List
s,我们没有理由不希望它适用于任何东西Traverseable
,具有map
函数,例如Set
s 或Stream
s。所以第二次尝试看起来像
但是现在,当然,结果不能分配给 a List[A]
:
有没有中间立场?我可以编写一个隐式转换,将方法添加到 Traversable 的所有子类,并成功返回该类型的对象吗?
(我猜这涉及理解可怕的CanBuildFrom
特征,甚至可能breakout
!)
scala - Scala 集合:完全不可预测的行为
对 Scala 2.8 的收集行为感到非常沮丧。这就是问题所在:我正在创建一个数独板。我正在标记从 A1 到 I9 的单元格(字母是行,数字是列)。我想获取板上的单元列表,即 9 行、夜间列和夜间象限。
这是我的 scala 类:
请参阅代码中的注释。具体来说,为什么相同的代码不会在 unitList 中编译,但在 run() 中编译并运行良好?
另外,当我观察 run 方法的输出时,yield 关键字返回的集合似乎在 Vector 和 List 之间随机切换:
我完全迷失在这里。
scala - 在 Scala 中交换集合元素的好方法是什么?
在我的一个项目中,一个常见的用例不断出现。在某些时候,我有某种排序的集合(List、Seq 等...无关紧要)和这个集合的一个元素。我想要做的是将给定元素与其后一个元素(如果该元素存在)或有时与前一个元素交换。
我很清楚使用过程编程技术实现这一目标的方法。我的问题是通过函数式编程(在 Scala 中)解决问题的好方法是什么?
谢谢大家的答案。我接受了我自己最了解的那个。由于我(还)不是函数式程序员,所以我很难决定哪个答案是真正最好的。在我看来,它们都非常好。
scala - 什么是集合视图,您想在什么时候使用它们?
在 Scala 中,您可以为许多(所有?)类型的集合创建视图。
究竟什么是视图,视图对哪些目的有用?
scala - Scala 不可变多映射
在 Scala 中,我希望能够编写
底层的 Map[Owner,Set[Pet]] 应该同时具有 Map 和 Set 不可变。这是带有伴生对象的 ImmutibleMultiMap 的初稿:
你能优雅地解决注释行吗?地图和集合都应该成为不可变的。
谢谢!
scala - Seq 用于 Scala 中的快速随机访问和快速增长
对于以下场景,最好的 Scala 集合(在 2.8+ 中)是可变的还是不可变的:
- 按顺序排列,所以我可以按位置访问项目(a Seq)
- 需要频繁插入项目,所以集合必须能够增长而不会受到太多惩罚
- 随机访问,经常需要在集合中的任意索引处删除和插入项目
目前我似乎使用可变 ArrayBuffer 获得了良好的性能,但还有什么更好的吗?是否有一个不变的替代方案也可以?提前致谢。
scala - 在 Scala 中使用什么类型来存储内存中的可变数据表?
每次调用函数时,如果尚未记住给定参数值集的结果,我想将结果放入内存表中。一列用于存储结果,其他列用于存储参数值。
我如何最好地实现这一点?参数有多种类型,包括一些枚举。
在 C# 中,我通常使用 DataTable。Scala中是否有等价物?
java - 在 Java 中迭代 Scala 集合
如何在 Java 中迭代 Scala 集合?
scala - Scala 集合过滤器按类型
我是 scala 的新手,遇到了以下问题:
我想获取仅包含特定类型元素的现有集合的子集合。以下作品:
但是,当我尝试使用“onlyInstancesOf[Type]”方法扩展集合类时,这不起作用。首先我的实现:
所以当我使用这个扩展并执行时:
我收到一个错误,.size 返回 4 而不是 2。此外,我检查过,结果实际上包含 C1 和 C2,尽管它不应该。
当我做:
我得到了例外:
所以很明显,结果集仍然包含应该被过滤掉的元素。
我不明白为什么会发生这种情况,有人可以解释一下吗?
编辑:Scala:Scala 代码运行器版本 2.8.0.final
scala - 反转 Map 的最简洁的 Scala 方法是什么?
反转 Map 的最简洁的 Scala 方法是什么?Map 可能包含非唯一值。
编辑:
Map[A, B]
应该给的反转 Map[B, Set[A]]
(或MultiMap,那会更好)。