问题标签 [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 回答
3720 浏览

scala - 过滤器的Scala集合类型

假设您有一个 List(1,"1"),它的类型是 List[Any],这当然是正确的和预期的。现在,如果我像这样映射列表

结果类型是 List[Int] 也是预期的。我的问题是是否存在与过滤器映射的等效项,因为以下示例将生成 List[Any]。这可能吗?我认为这可以在编译时解决,可能不是运行时?

0 投票
5 回答
14635 浏览

scala - 将 Scala Set 转换为 Java (java.util.Set)?

我在 Scala 中有一个 Set(我可以在创建 Set 时选择任何实现。我正在使用的 Java 库需要一个 java.util.Set[String]。

以下是在 Scala 中执行此操作的正确方法(使用 scala.collection.jcl.HashSet#underlying):

它似乎正在工作,但由于我对 Scala 很陌生,我想知道这是否是首选方式(我尝试的任何其他方式都会收到类型不匹配错误):

0 投票
3 回答
3174 浏览

generics - 扩展 Scala 集合

我想要一个尝试覆盖现有键的值的 Map。我试过了:

并得到:

我对 Scala 很陌生,无法找到克服这个问题的方法。有什么帮助吗?:)

编辑:我正在使用 Scala 2.8.0.Beta1-prerelease (这给 scala.collection 带来了一些变化)

0 投票
10 回答
32938 浏览

scala - 在 Scala 中反转地图的优雅方法

目前正在学习 Scala,需要反转一个 Map 来做一些反转的 value->key 查找。我一直在寻找一种简单的方法来做到这一点,但只想出了:

有人有更优雅的方法吗?

0 投票
3 回答
3346 浏览

scala - Scala中的等式关系

我刚刚偶然发现了 Tony Morris 的一篇关于 Java 的博客文章以及该语言的一个基本问题:为集合定义定制的相等关系。我认为这是一件大事,并想知道是否有一些 scala 解决方案。

经典问题体现在对交易的思考中。假设我进行了两次 +100 沃达丰股票 @150p 的交易。这两个交易是平等的,是吗?除了他们不是同一个行业。在一个正常的现实世界系统的情况下,具有持久性或序列化,我不能依靠身份来告诉我两个引用是否指向同一个交易

所以我想要的是能够创建一个集合,我可以将 Equality-relation 传递给:

我将如何以有效的方式实现我的集合(除非EqualityRelation还定义了一种hash机制)?

所以问题是:

  • 有没有提供这种能力的图书馆?
  • 有没有办法在 Scala 中巧妙地做到这一点?

似乎使用隐式,添加到现有的 scalaSet类型将是一件很容易的事情。

0 投票
1 回答
917 浏览

java - scala 2.8 隐含 java 集合转换

我对 2.8 beta 的 JavaConversions 有疑问:

然后异常:

0 投票
6 回答
3689 浏览

scala - 从 mutable.Map 到 immutable.Map 的 O(1) 转换?

有没有办法在 O(1) 时间内将可变 Map 转换(包装)为不可变(也就是说,不是通过复制值,而是类似于在 JavaConversions 中所做的)

0 投票
2 回答
888 浏览

scala - 查找和返回的最佳 scala 成语

这是我经常遇到的事情,但我不知道优雅的做法。我有一个 Foo 对象的集合。Foo 有一个 bar() 方法,它可以返回 null 或 Bar 对象。我想扫描集合,调用每个对象的 bar() 方法并在第一个返回实际引用时停止并从扫描中返回该引用。

明显地:

foos.find(_.bar != null).bar

做的伎俩,但调用#bar 两次。

0 投票
2 回答
7861 浏览

arrays - 在 Scala 中创建和填充二维数组

在 Scala 中创建预填充二维数组的推荐方法是什么?我有以下代码:

如何制作数组而不是列表?用 .toArray 替换 .toList 不会编译。有没有比嵌套的 for 表达式更简洁或可读的方法呢?

0 投票
3 回答
11670 浏览

scala - 使用谓词从 scala 可变映射中删除元素的正确方法是什么

如何在不创建任何新集合的情况下做到这一点?还有比这更好的吗?

Scala 2.8 中的 PS