-
3 votes4 answers1770 views
Scala中的泛型集合有问题
我很困惑如何在Scala中解决这个问题 . 在Java中,我放弃了泛型或使用强制转换,但Scala比这更严格 . 这就是我所拥有的 . 一个抽象基类 Factory[+F <: Factory[F]] 和一些与此无关的具体实现 . 这是协变的 . 这个类有一个创建产品的方法 - 见下一点 . 表示工厂产品的抽象基类 Product[+F <: Factory[F]] . 这些... -
821 votes18 answers784 views
Scala 2.8馆藏图书馆是“历史上最长的遗书”吗? [关闭]
我刚刚开始关注Scala collections library re-implementation即将发布的Scala collections library re-implementation . 熟悉2.7中的库的人会注意到,从使用角度来看,库几乎没有变化 . 例如... > List("Paris", "London").map(_.lengt... -
3 votes1 answers50 views
Scala集合用于在维护订单的同时进行分组
我有类似的东西 case class Job(workId: Int, users: List[String]) val jobs = IndexedSeq(Job(1, List("a", "b")), Job(2, List("b", "c")), Job(3, List("a", "... -
3 votes1 answers208 views
Scala结合了Seq of Timestamps
您好我正在学习Scala,我有以下案例类的Seq对象: case class HistoryCounter(time: DateTime, counter:Int) 现在我想基于时间戳 time 组合 counter 的值 . 获取 time 在同一天或同一周的所有计数器的总和 . 你怎么能这样做?折叠或 Map 之类的集合函数是否能够执行此操作? -
4 votes1 answers585 views
scala变量参数:_ *
有人可能会更多地关注下一段scala代码,这对我来说并不完全清楚吗?我有以下功能定义 def ids(ids: String*) = { _builder.ids(ids: _*) this } 然后我试图将变量参数列表传递给此函数,如下所示: def searchIds(kind: KindOfThing, adIds:String*) = { ... ids(adIds)... -
0 votes1 answers1868 views
Scala RDD groupby与所有列一起计算
我需要获取所有列以及count.In Scala RDD . Col1 col2 col3 col4 us A Q1 10 us A Q3 10 us A Q2 20 us B Q4 10 us B Q5 20 uk A Q1 10 uk A Q3 10 uk... -
9 votes2 answers401 views
Scala可变集合和“引用必须带有前缀警告”
我必须为特定用例使用可变链表 . 但是我想避免 "Reference must be prefixed" 警告 . 别名导入似乎是一个解决方案: import scala.collection.mutable.{LinkedList => MutableLinkedList} 它适用于大多数情况,除了模式匹配一个空的LinkedList,这仍然会产生警告: case M... -
1 votes1 answers327 views
scala List / Seq上的 Map
我有以下简单的代码 private def tt(l:Seq[Int]):Seq[Future[Unit]] = { val aa = l.map(_=>Future.successful(())) aa } 我很容易理解我正在返回 Future[Unit] type corresponding to each element of my sequence "... -
1 votes1 answers698 views
列表的Scala列表字符串查找不同的元素
您好我的scala列表包含以下元素 val myList = List(List("A","B","C","E"),List("A","A1","B1","C","E"),List("P","... -
1 votes2 answers460 views
如何使用伴侣工厂对象作为策略?
我有一个测试,当我迭代 Map 中的值时因为排序问题而间歇性地失败 . Scala提供了一个 ListMap ,这使得测试稳定,但却牺牲了性能 . 所以我将 ImmutableMapFactory 抽象为val并在我的代码中使用它 . class C { val immutableMapFactory = scala.collection.immutable.Map def func =... -
0 votes1 answers1126 views
DRY使用Option的值的多个字段
Background 我'm using a java web UI library (Vaadin, but that'无关紧要 - 我没有使用Scaladin附加组件,其中 TextField 有一个方法 setValue(String) 来设置当前文本值 . 由于它是一个java库,它没有 Option 的概念,但可以表示 null 值,例如,一个空字符串(它's configurable)... -
0 votes3 answers1656 views
使用Iterable和scala泛型
我有两个函数具有完全相同的实现 - 只有一个处理 Option 而另一个处理 Seq . 我想使用泛型将其编写为处理 Iterable 的单个函数,同时在调用代码中保留具体类型 - 如果可能的话? def f[T](a: Seq[Failure \/ T]): Failure \/ Seq[T] = { ??? }def g[T](b: Option[Failure \/ T]): Failur... -
31 votes4 answers1751 views
Scala集合标准实践
来自 Java 背景,我习惯于处理集合的常见做法:显然会有异常但通常代码看起来像: public class MyClass { private Set<String> mySet; public void init() { Set<String> s = new LinkedHashSet<String>(); s.add("... -
3 votes3 answers898 views
从本地构建的可变映射返回不可变映射的首选方法是什么?
通常,我发现自己实现了从输入源构建 Map 的方法 . 在这种情况下,我使用 scala.collection.mutable.Map ,假设速度和效率更高;然而,一旦这个集合被构建,我不再希望它是可变的 . 从可变映射返回不可变映射的首选Scala方法是什么?通常,我做了 myMap.toMap ,这显然有效,但闻起来 . 或者,您可以将返回类型设置为 scala.collection.Map ... -
1 votes1 answers1111 views
将Scala映射转换为java Dictionary
我在我的scala代码中调用了一些Java API . Java API期望输入 java.util.Dictionary 类型,我的数据在Scala Map集合中,我需要在调用Java API之前将其转换为Java Dictionary . 那么有没有办法或转换器来进行这种转换? -
0 votes6 answers883 views
联盟类型scala的集合
在scala中是否可以拥有联合类型的集合 . 有几种方法可以讨论联合类型here评价最高的答案感觉最本土,我有这样的事情: sealed trait StringOrNumber[T] object StringOrNumber { implicit object IntWitness extends StringOrNumber[Int] implicit object Stri... -
2 votes2 answers239 views
Scala Collection CanBuildFrom
在Scala 2.10.2中,我试图通过滚动我自己的一些简单集合来了解有关集合层次结构的更多信息 . 下面是表示整数序列的玩具类的源代码 . import scala.collection.SeqLike import scala.collection.mutable.Builder import scala.collection.generic.CanBuildFrom object IntS... -
1 votes2 answers122 views
Scala集合中的结构类型参数
Disclaimer: 这是一个什么是 possible 的问题,而不是在实践中推荐的问题 . 假设您有以下课程: case class point1(x: Int, y:Int) case class point2(x: Int, y:Int) case class point3(x: Int, y:Int) 并且您有包含每个类的一些数量的列表 val points1 = List[point... -
5 votes1 answers1837 views
在Scala中使用并行集合的首选方法是什么?
起初我假设每个集合类都会收到一个额外的 par 方法,该方法将集合转换为适合的并行数据结构(如 map 返回Scala 2.8中元素类型的最佳集合) . 现在似乎某些集合类支持 par 方法(例如数组),但其他集合类具有 toParSeq , toParIterable 方法(例如List) . 这有点奇怪,因为经常不使用或推荐Array . 这是什么原因?在"right thing&q... -
5 votes1 answers1481 views
如何在不定义实现的情况下在Scala中定义自定义集合接口?
我正在尝试在Scala 2.8中定义自定义集合接口 . 我想要求子类是Traversable,还有其他一些行为 . 我也想像map()这样的方法返回相应的类型,如下所示: trait CustomCollection[+A] extends Traversable[A] { def customOperation(i:Int):Int // for example } def incre... -
25 votes1 answers484 views
从scala并行集合转换为常规集合
我正试图从并行集合转换回常规 Map . 根据api,如果我在任何适当定义的并行集合上调用map,它应该返回一个标准的Map,但是它会在一个扁平的iterables集合上返回ParMap . 我有一个 val task: Stream[Future[Iterable[Tuple2[String, String]]]] 从中得到: val res: ParSeq[Iterable[Tuple2[... -
7 votes1 answers1771 views
如何为Scala中的任何Traversable实现通用算法?
我正在实现一个通用算法来返回基于另外两个集合的集合 . 问题可以简化为 def add[Repr <: Traversable[_]](coll1: Repr, coll2: Repr) = coll1 ++ coll2 当我将算法应用于我定义为的集合A时,会出现问题 class A[T] extends Iterable[(Int,T)] with IterableLike[(Int,T... -
2 votes2 answers1886 views
在Scala中创建自定义Seq集合
我想从现有的Seq集合中创建一个新的自定义Scala集合 . 我有一个名为Ref的特征,其中包含如下数据 trait Ref[A] { def get: A def getAsOption: Option[A] def dataType: Class[A] // other methods } 我的自定义集合名为Vec,它是Ref [A]的序列(即Vec [A]等同于Se... -
13 votes2 answers1926 views
为什么Iterator在Scala 2.8中有一个contains方法但是Iterable没有?
我想在我的Iterables上打电话'包含':-) -
5 votes5 answers629 views
Scala集合不一致
为什么Scala Collections API中的集合和列表之间缺乏一致性? 例如,存在不可变的Set,但也是可变的Set . 如果我想使用后者,我可以简单地这样做: val set = Set[A]() set += new A 但是,本身没有可变列表 . 如果我想使用Lists编写类似的代码片段,使用哪种数据结构? LinkedList听起来很好,因为它是可变的,但没有定义=方法 . L... -
49 votes1 answers31 views
如何附加或前置Scala mutable.Seq
有人了解Scala的collection.mutable.Seq . 它描述了所有可变序列的接口,但是我没有看到在不创建新序列的情况下附加或前置元素的方法 . 我错过了一些明显的东西吗? 分别有 :+ 和 +: 用于追加和前置,但是它们创建了新的集合 - 为了与不可变序列的行为一致,我假设 . 这很好,但为什么没有类似 += 和 +=: 的方法,如 ArrayBuffer 和 ListBuffer... -
38 votes2 answers1028 views
Scala集合中的可变与不可变
我是Scala的新手,我正在尝试理解集合层次结构 . 我看到'mutable'和'immutable'集合之间存在区别,但我不明白这在实现层面的实际含义以及它与 val 和 var 的关系 . 有人能给我一些见解吗?此外,每个集合类都有'mutable'版本和'immutable'版本,或者是否有一些类只能是'mutable'或'immutable'? -
0 votes2 answers256 views
从Java List转换为Scala可变缓冲区
我有一些问题从Scala转换为Java,然后再转换为Scala . 我正在尝试从Scala可变缓冲区转换为Java List,然后在应用Java的漂亮的shuffling函数后返回到Scala可变缓冲区 . 我尝试使用Scala的Random库的shuffling函数(即使缓冲区被转换为Scala列表)但是它对我不起作用,因为缓冲区的类型是“Card”类型,它是我为之设置的Object类型我正在研... -
33 votes2 answers603 views
Scala Traversable,Iterable,Sequence,Stream和View的语义?
还有其他问题,如Scala: What is the difference between Traversable and Iterable traits in Scala collections?和How would I get the sum of squares of two Lists in Scala?,可以部分回答这个问题 . 我觉得在一个地方覆盖所有这些问题是有道理的 . -
26 votes1 answers771 views
惯用斯卡拉 Map upsert
我正在使用Scala中的 Map 并执行通常的“如果没有与键关联的值,创建它,将其放入 Map 并返回它”: def alphaMemory(key : AlphaMemoryKey) = { var am = map.getOrElse(key, null) if(am == null) { am = new AlphaMemory(key) ma...