问题标签 [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 投票
3 回答
3769 浏览

scala - scala collection.Map 无法添加到

为什么我不能添加到一个scala.collection.Map?如果没有此功能,这似乎trait毫无用处。

难道他们不能重写++in 方法Iterable并将返回类型减少到 aMap吗?

PS我并不是说它应该是mutable,只是它应该能够返回一个Map带有添加映射(或映射)的 new ,与immutable.Map.

0 投票
3 回答
10176 浏览

scala - Scala中的聚合列表值

从包含两个参数 notional 和 currency 的对象列表开始,如何汇总每种货币的总名义值?

鉴于:

我怎样才能得到:

0 投票
4 回答
14524 浏览

scala - 如何从 java.util.Map 转换为 Scala Map

Java API 返回一个java.util.Map<java.lang.String,java.lang.Boolean>;。我想把它放到一个Map[String,Boolean]

所以想象我们有:

你不能这样做Map.empty ++ javaMap,因为 ++ 方法不知道 Java 映射。我试过了:

和:

由于泛型,这些都无法编译 -java.lang.String与 scala String 不同。

除了手动复制地图之外,有没有一种好的方法可以做到这一点?

编辑:谢谢,所有好的答案,我从他们所有人那里学到了很多。但是,我在这里发布了一个比我实际遇到的问题更简单的问题,这是一个错误。所以,如果你允许我,我会概括这个问题 - API 实际返回的是

我需要把它移到 Map[String, Map[SomeJavaEnum,String]]

它可能看起来不太复杂,但它增加了额外的类型擦除级别,我发现将它移动到 Scala 映射的唯一方法是深度复制它(使用您在下面建议的一些技术) . 任何人有任何提示?我通过为我的确切类型定义一个隐式转换来解决我的问题,所以至少丑陋隐藏在它自己的特征中,但仍然感觉有点笨拙的深度复制很多。

0 投票
5 回答
21985 浏览

scala - scala Iterable#map 与 Iterable#flatMap

map和的flatMap功能有什么区别Iterable

0 投票
2 回答
3409 浏览

java - 从 Scala 中的 java.util.Set 构造一个 java.util.List

我想创建一个基于另一个 java 集合的 java 列表,例如。设置在 Scala 中。

为什么这是不可能的?我得到一个 required: scala.this.Int 错误。

然而,这有效,但感觉不对:

谢谢!

0 投票
2 回答
1905 浏览

list - Scala best way of turning a Collection into a Map-by-key? (2nd variant)

(This is a variant to this Q&A)

Say I have this:

I want to create a Map for which the key is the length of the String and the value is a Collection of all the Strings that have that length. In other words, given the about List, we'd get:

The code I've written to do this is:

This works, but it adds a lot of ugliness to the elegant answer Daniel Spiewak provided to the original question (referenced above).

Any ideas how to improve the solution for my variant?

Thanks! Sean

0 投票
2 回答
568 浏览

scala - 在 Scala 中使用 JDOQL 结果

我正在尝试将 JDO 与 Google App Engine 和 Scala 一起使用。执行返回的 api Object(但它实际上是一个 java 集合),我想将它放入一个 scala 列表中以对其进行迭代。

到目前为止,我的代码如下所示:

此时的编译错误是toArray is not a member of Object。执行上述操作的最佳方法是什么?我尝试使用.asInstanceOf[java.util.Collection[User]],但尝试失败。

0 投票
3 回答
11663 浏览

arrays - 如何在 Scala 数组上使用 Java Collections.shuffle()?

我有一个要随机排列的数组。在 Java 中,有一个方法 Collections.shuffle() 可以随机打乱 List 的元素。它也可以在数组上使用:

我尝试在 Scala 数组上使用它,但 Scala 解释器给出了一个冗长的答案:

这里到底发生了什么?我不想用特殊标志(-Xno-varargs-conversion)编译我的代码,如果那是解决方案的话,正因为如此。

那么,如何在 Scala 数组上使用 Java 的 Collections.shuffle() 呢?

与此同时,我在 Scala 中编写了自己的 shuffle 方法:

它在适当的位置打乱数组,并为方便起见返回数组本身。

0 投票
8 回答
32673 浏览

scala - Scala:如何合并地图集合

我有一个 Map[String, Double] 列表,我想将它们的内容合并到一个 Map[String, Double] 中。我应该如何以惯用的方式做到这一点?我想我应该可以通过弃牌做到这一点。就像是:

此外,我想以通用方式处理键冲突。也就是说,如果我向已经存在的映射添加一个键,我应该能够指定一个返回 Double 的函数(在这种情况下)并获取该键的现有值,加上我试图添加的值. 如果映射中尚不存在该键,则只需添加它并且其值不变。

在我的具体情况下,我想构建一个 Map[String, Double] ,这样如果地图已经包含一个键,那么 Double 将被添加到现有的地图值中。

I'm working with mutable maps in my specific code, but I'm interested in more generic solutions, if possible.

0 投票
3 回答
716 浏览

scala - Scala不可变的SortedSet在删除时不是“稳定的”

我必须处理 scala 2.7.5 中的不可变对象,它的成员之一是不可变的 Sortedset。我对加法没有问题,综合起来,它给出:

它可以工作,因为 + 运算符在 trait sortedSet 中是重载的,以返回一个 SortedSet。

不幸的是,删除元素失败,因为 - 方法没有重载:

有谁知道当我抑制一个元素时我如何获得一个排序集: - 我不想使用像 TreeSet 这样更具体的集合。- 我不能使用不太具体的特征作为 Set[A] 而不是我的 SortedSet。