问题标签 [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.

0 投票
1 回答
7815 浏览

scala - 惯用的 Scala Map upsert

我正在使用 Scala 中的地图并执行通常的“如果没有与键关联的值,则创建它,将其放入地图并返回它”:

对我来说,这不像是惯用的 Scala 代码。感觉像Java。有没有更简洁的写法?看起来也许我可以覆盖 Map.default() 以插入新值并返回它。不过不确定。

谢谢!

0 投票
4 回答
2195 浏览

scala - scala 将 Iterator[Option[T]] 转换为 Iterator[T]

我有一个Iterator[Option[T]],我想Iterator[T]为那些Options where获得一个T isDefined。一定有比这更好的方法:

我原以为在一个构造中是可能的……有人有什么想法吗?

0 投票
3 回答
12133 浏览

java - Scala 等价于 new HashSet(Collection)

什么是Java等效的 Scala 构造函数(创建一个不可变的) HashSet

c类型在哪里Collection<? extends T>

我在HashSet Object中只能找到apply.

0 投票
13 回答
165059 浏览

scala - Scala 将 Collection 转换为 Map-by-key 的最佳方式?

如果我有一个c类型的集合T并且有一个属性p(例如Ttype P),那么执行map-by-extracting-key的最佳方法是什么?

一种方法如下:

但现在我需要一个可变地图。有没有更好的方法来做到这一点,让它在 1 行,我最终得到一个不可变的地图?(显然我可以将上面的内容变成一个简单的库实用程序,就像在 Java 中一样,但我怀疑在 Scala 中没有必要)

0 投票
10 回答
80279 浏览

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


这似乎有效。欢迎批评!

0 投票
4 回答
9538 浏览

java - Scala 集合标准实践

来自Java背景,我习惯于处理集合的常见做法:显然会有例外,但通常代码如下所示:

我不得不承认,我对 Scala 中过多的选项感到有些困惑。有:

  • scala.List(和Seq
  • scala.collections.Set(和Map
  • scala.collection.immutable.Set(和MapStack但不是List
  • scala.collection.mutable.Set(和MapBuffer但不是List
  • scala.collection.jcl

所以问题!

  1. 为什么ListSeq定义在包中scala而不是 scala.collection(即使实现Seq在集合子包​​中)?
  2. 初始化集合然后冻结它的标准机制是什么(在 Java 中是通过包装在 中来实现的unmodifiable)?
  3. 为什么某些集合类型(例如MultiMap)只定义为可变的?(没有不可变的MultiMap)?

我已经阅读了 Daniel Spiewak关于 scala 集合的优秀系列,但我仍然对如何在实践中实际使用它们感到困惑。由于强制执行完整的包声明,以下内容似乎有点笨拙:

尽管可以说这比 Java 版本更正确,因为不可变集合不能更改(如在 Java 情况下,可以在unmodifiable包装器下更改底层集合)

0 投票
3 回答
8309 浏览

scala - 为什么 Scala 的不可变 Set 在其类型上不是协变的?

编辑:根据原始答案重新编写了这个问题

该类scala.collection.immutable.Set的类型参数不是协变的。为什么是这样?

0 投票
2 回答
1906 浏览

scala - 从可迭代对象创建集合时,Scala 是否必须转换为 Seq?

也许我(再次)在错误的树上吠叫,但是如果将属性类型为 a 是正常做法scala.collection.immutable.Set[A],那么在给定 a 的情况下,您将如何创建其中的一个scala.Iterable[A]?例如:

有人可以解释为什么有必要通过 a 创建不可变集Seq(或者如果不是,那么我该怎么做)?

0 投票
1 回答
374 浏览

scala - Scala API 设计;返回一个集合的服务,其中我是某个接口(抽象/特征)

0 投票
2 回答
11751 浏览

scala - Scala Map:神秘的语法糖?

我刚刚发现了 scala 的这种语法Map(在此处以可变形式使用)

现在我不确定这是否是语言中内置的语法,或者这里是否发生了更基本的事情,涉及到 map 扩展了PartialFunction. 谁能解释一下?