问题标签 [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 - 惯用的 Scala Map upsert
我正在使用 Scala 中的地图并执行通常的“如果没有与键关联的值,则创建它,将其放入地图并返回它”:
对我来说,这不像是惯用的 Scala 代码。感觉像Java。有没有更简洁的写法?看起来也许我可以覆盖 Map.default() 以插入新值并返回它。不过不确定。
谢谢!
scala - scala 将 Iterator[Option[T]] 转换为 Iterator[T]
我有一个Iterator[Option[T]],我想Iterator[T]为那些Options where获得一个T isDefined。一定有比这更好的方法:
我原以为在一个构造中是可能的……有人有什么想法吗?
java - Scala 等价于 new HashSet(Collection)
什么是Java等效的 Scala 构造函数(创建一个不可变的) HashSet
c类型在哪里Collection<? extends T>?
我在HashSet Object中只能找到apply.
scala - Scala 将 Collection 转换为 Map-by-key 的最佳方式?
如果我有一个c类型的集合T并且有一个属性p(例如Ttype P),那么执行map-by-extracting-key的最佳方法是什么?
一种方法如下:
但现在我需要一个可变地图。有没有更好的方法来做到这一点,让它在 1 行,我最终得到一个不可变的地图?(显然我可以将上面的内容变成一个简单的库实用程序,就像在 Java 中一样,但我怀疑在 Scala 中没有必要)
java - 将 Java 集合转换为 Scala 集合
与 Stack Overflow 问题Scala 等效于 new HashSet(Collection)相关,如何将 Java 集合(java.util.List比如说)转换为 Scala 集合List?
我实际上是在尝试将 Java API 调用转换为返回 a 的Spring 转换为 Scala immutable 。例如:SimpleJdbcTemplatejava.util.List<T>HashSet
这似乎有效。欢迎批评!
java - Scala 集合标准实践
来自Java背景,我习惯于处理集合的常见做法:显然会有例外,但通常代码如下所示:
我不得不承认,我对 Scala 中过多的选项感到有些困惑。有:
scala.List(和Seq)scala.collections.Set(和Map)scala.collection.immutable.Set(和Map,Stack但不是List)scala.collection.mutable.Set(和Map,Buffer但不是List)scala.collection.jcl
所以问题!
- 为什么
List和Seq定义在包中scala而不是scala.collection(即使实现Seq在集合子包中)? - 初始化集合然后冻结它的标准机制是什么(在 Java 中是通过包装在 中来实现的
unmodifiable)? - 为什么某些集合类型(例如
MultiMap)只定义为可变的?(没有不可变的MultiMap)?
我已经阅读了 Daniel Spiewak关于 scala 集合的优秀系列,但我仍然对如何在实践中实际使用它们感到困惑。由于强制执行完整的包声明,以下内容似乎有点笨拙:
尽管可以说这比 Java 版本更正确,因为不可变集合不能更改(如在 Java 情况下,可以在unmodifiable包装器下更改底层集合)
scala - 为什么 Scala 的不可变 Set 在其类型上不是协变的?
编辑:根据原始答案重新编写了这个问题
该类scala.collection.immutable.Set的类型参数不是协变的。为什么是这样?
scala - 从可迭代对象创建集合时,Scala 是否必须转换为 Seq?
也许我(再次)在错误的树上吠叫,但是如果将属性类型为 a 是正常做法scala.collection.immutable.Set[A],那么在给定 a 的情况下,您将如何创建其中的一个scala.Iterable[A]?例如:
有人可以解释为什么有必要通过 a 创建不可变集Seq(或者如果不是,那么我该怎么做)?
scala - Scala Map:神秘的语法糖?
我刚刚发现了 scala 的这种语法Map(在此处以可变形式使用)
现在我不确定这是否是语言中内置的语法糖,或者这里是否发生了更基本的事情,涉及到 map 扩展了PartialFunction. 谁能解释一下?