-
1 votesanswersviews
如何使用伴侣工厂对象作为策略?
我有一个测试,当我迭代 Map 中的值时因为排序问题而间歇性地失败 . Scala提供了一个 ListMap ,这使得测试稳定,但却牺牲了性能 . 所以我将 ImmutableMapFactory 抽象为val并在我的代码中使用它 . class C { val immutableMapFactory = scala.collection.immutable.Map def func =... -
134 votesanswersviews
Scala将Collection转换为按键映射的最佳方法是什么?
如果我有 T 类型的集合 c 并且 T 上有一个属性 p (类型为 P ,比如说),那么执行map-by-extraction-key的最佳方法是什么? val c: Collection[T] val m: Map[P, T] 一种方法如下: m = new HashMap[P, T] c foreach { t => m add (t.getP, t) } 但现在我需要一个可变的 M... -
217 votesanswersviews
Scala 2.8 breakOut
在Scala 2.8 中, scala.collection.package.scala 中有一个对象: def breakOut[From, T, To](implicit b : CanBuildFrom[Nothing, T, To]) = new CanBuildFrom[From, T, To] { def apply(from: From) = b.apply... -
73 votesanswersviews
Scala 2.8系列设计教程
继my breathless confusion之后,有哪些好资源可以解释新的Scala 2.8 集合库是如何构建的 . 我有兴趣找到以下如何融合在一起的一些信息: 集合类/特征本身(例如 List , Iterable ) 为什么存在Like类(例如 TraversableLike ) 配套方法的用途(例如 List.companion ) 我怎么知道 implicit 对象在... -
20 votesanswersviews
过滤器的Scala集合类型
假设你有一个List(1,“1”),它是类型List [Any],这当然是正确的和预期的 . 现在,如果我像这样映射列表 scala> List(1, "1") map { | case x: Int => x | case y: String => y.toInt | } 结果类型是List [Int],也是预期的 .... -
3 votesanswersviews
scala 2.8牵连java集合转换
我有使用2.8 beta的JavaConversions有问题: import scala.collection.JavaConversions._ class Utils(dbFile : File, sep: String) extends IUtils { (...) def getFeatures() : java.util.List[String] = csv.attr... -
13 votesanswersviews
如何在Scala 2.8中实现集合?
在尝试编写API时,我正在努力使用Scala的2.8(.0-beta1)集合 . 基本上我需要的是写一些东西: 为某种类型的不可变集添加了功能 其中所有像filter和map这样的方法返回相同类型的集合而不必覆盖所有内容(这就是为什么我首先选择2.8) 通过这些方法获得的所有集合都使用与原始集合相同的参数构造(类似于SortedSet通过implicits进行排序的方式) 本身仍然... -
19 votesanswersviews
在Scala 2.8集合中,为什么Traversable类型添加到Iterable之上?
我知道要 Traversable ,你只需要一个 foreach 方法 . Iterable 需要 iterator 方法 . Scala 2.8集合SID和"Fighting Bitrot with Types"论文基本上都没有提到为什么添加了 Traversable . SID只说"David McIver... proposed Traversable ... -
83 votesanswersviews
将Java集合转换为Scala集合
与Stack Overflow问题Scala equivalent of new HashSet(Collection)相关,如何将Java集合( java.util.List say)转换为Scala集合 List ? 我实际上是尝试将Java API调用转换为Spring's SimpleJdbcTemplate ,它将 java.util.List<T> 返回到Scala不可... -
89 votesanswersviews
Scala:Scala集合中的Traversable和Iterable特性有什么区别?
我看了this question但仍然不理解Iterable和Traversable特征之间的区别 . 谁能解释一下? -
1 votesanswersviews
了解Scala的flatmap类型转换
List状态的文档: 结果集合的类型由静态类型的列表引导 . 这有时会导致意外结果 . 例如:// lettersOf将返回可能重复字母的Seq [Char],而不是Set def lettersOf(words:Seq [String])= words flatMap(word => word.toSet)// lettersOf将返回一个Set [Char],而不是Seq def le... -
3 votesanswersviews
Scala中的泛型集合有问题
我很困惑如何在Scala中解决这个问题 . 在Java中,我放弃了泛型或使用强制转换,但Scala比这更严格 . 这就是我所拥有的 . 一个抽象基类 Factory[+F <: Factory[F]] 和一些与此无关的具体实现 . 这是协变的 . 这个类有一个创建产品的方法 - 见下一点 . 表示工厂产品的抽象基类 Product[+F <: Factory[F]] . 这些... -
0 votesanswersviews
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... -
0 votesanswersviews
DRY使用Option的值的多个字段
Background 我'm using a java web UI library (Vaadin, but that'无关紧要 - 我没有使用Scaladin附加组件,其中 TextField 有一个方法 setValue(String) 来设置当前文本值 . 由于它是一个java库,它没有 Option 的概念,但可以表示 null 值,例如,一个空字符串(它's configurable)... -
1 votesanswersviews
列表的Scala列表字符串查找不同的元素
您好我的scala列表包含以下元素 val myList = List(List("A","B","C","E"),List("A","A1","B1","C","E"),List("P","... -
0 votesanswersviews
使用Iterable和scala泛型
我有两个函数具有完全相同的实现 - 只有一个处理 Option 而另一个处理 Seq . 我想使用泛型将其编写为处理 Iterable 的单个函数,同时在调用代码中保留具体类型 - 如果可能的话? def f[T](a: Seq[Failure \/ T]): Failure \/ Seq[T] = { ??? }def g[T](b: Option[Failure \/ T]): Failur... -
31 votesanswersviews
Scala集合标准实践
来自 Java 背景,我习惯于处理集合的常见做法:显然会有异常但通常代码看起来像: public class MyClass { private Set<String> mySet; public void init() { Set<String> s = new LinkedHashSet<String>(); s.add("... -
3 votesanswersviews
从本地构建的可变映射返回不可变映射的首选方法是什么?
通常,我发现自己实现了从输入源构建 Map 的方法 . 在这种情况下,我使用 scala.collection.mutable.Map ,假设速度和效率更高;然而,一旦这个集合被构建,我不再希望它是可变的 . 从可变映射返回不可变映射的首选Scala方法是什么?通常,我做了 myMap.toMap ,这显然有效,但闻起来 . 或者,您可以将返回类型设置为 scala.collection.Map ... -
1 votesanswersviews
将Scala映射转换为java Dictionary
我在我的scala代码中调用了一些Java API . Java API期望输入 java.util.Dictionary 类型,我的数据在Scala Map集合中,我需要在调用Java API之前将其转换为Java Dictionary . 那么有没有办法或转换器来进行这种转换? -
0 votesanswersviews
联盟类型scala的集合
在scala中是否可以拥有联合类型的集合 . 有几种方法可以讨论联合类型here评价最高的答案感觉最本土,我有这样的事情: sealed trait StringOrNumber[T] object StringOrNumber { implicit object IntWitness extends StringOrNumber[Int] implicit object Stri... -
2 votesanswersviews
Scala Collection CanBuildFrom
在Scala 2.10.2中,我试图通过滚动我自己的一些简单集合来了解有关集合层次结构的更多信息 . 下面是表示整数序列的玩具类的源代码 . import scala.collection.SeqLike import scala.collection.mutable.Builder import scala.collection.generic.CanBuildFrom object IntS... -
1 votesanswersviews
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 votesanswersviews
在Scala中使用并行集合的首选方法是什么?
起初我假设每个集合类都会收到一个额外的 par 方法,该方法将集合转换为适合的并行数据结构(如 map 返回Scala 2.8中元素类型的最佳集合) . 现在似乎某些集合类支持 par 方法(例如数组),但其他集合类具有 toParSeq , toParIterable 方法(例如List) . 这有点奇怪,因为经常不使用或推荐Array . 这是什么原因?在"right thing&q... -
5 votesanswersviews
如何在不定义实现的情况下在Scala中定义自定义集合接口?
我正在尝试在Scala 2.8中定义自定义集合接口 . 我想要求子类是Traversable,还有其他一些行为 . 我也想像map()这样的方法返回相应的类型,如下所示: trait CustomCollection[+A] extends Traversable[A] { def customOperation(i:Int):Int // for example } def incre... -
25 votesanswersviews
从scala并行集合转换为常规集合
我正试图从并行集合转换回常规 Map . 根据api,如果我在任何适当定义的并行集合上调用map,它应该返回一个标准的Map,但是它会在一个扁平的iterables集合上返回ParMap . 我有一个 val task: Stream[Future[Iterable[Tuple2[String, String]]]] 从中得到: val res: ParSeq[Iterable[Tuple2[... -
7 votesanswersviews
如何为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 votesanswersviews
在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 votesanswersviews
为什么Iterator在Scala 2.8中有一个contains方法但是Iterable没有?
我想在我的Iterables上打电话'包含':-) -
5 votesanswersviews
Scala集合不一致
为什么Scala Collections API中的集合和列表之间缺乏一致性? 例如,存在不可变的Set,但也是可变的Set . 如果我想使用后者,我可以简单地这样做: val set = Set[A]() set += new A 但是,本身没有可变列表 . 如果我想使用Lists编写类似的代码片段,使用哪种数据结构? LinkedList听起来很好,因为它是可变的,但没有定义=方法 . L... -
49 votesanswersviews
如何附加或前置Scala mutable.Seq
有人了解Scala的collection.mutable.Seq . 它描述了所有可变序列的接口,但是我没有看到在不创建新序列的情况下附加或前置元素的方法 . 我错过了一些明显的东西吗? 分别有 :+ 和 +: 用于追加和前置,但是它们创建了新的集合 - 为了与不可变序列的行为一致,我假设 . 这很好,但为什么没有类似 += 和 +=: 的方法,如 ArrayBuffer 和 ListBuffer...