Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Scala中构造EnumeratedDistribution实例_Java_Scala_Apache Commons Math - Fatal编程技术网

Java 在Scala中构造EnumeratedDistribution实例

Java 在Scala中构造EnumeratedDistribution实例,java,scala,apache-commons-math,Java,Scala,Apache Commons Math,我在做一些琐碎的事情时感觉很糟糕:在Scala中创建一个新的实例。我能做的最好的事情是,以下几点应该有用 import org.apache.commons.math3.distribution.EnumeratedDistribution import org.apache.commons.math3.util.Pair val p = new Pair(1L, 0.5) val q = new Pair(2L, 0.5) val mapping = new java.util.ArrayL

我在做一些琐碎的事情时感觉很糟糕:在Scala中创建一个新的实例。我能做的最好的事情是,以下几点应该有用

import org.apache.commons.math3.distribution.EnumeratedDistribution
import org.apache.commons.math3.util.Pair

val p = new Pair(1L, 0.5)
val q = new Pair(2L, 0.5)
val mapping = new java.util.ArrayList[Pair[Long, Double]]()
mapping.add(p)
mapping.add(q)

val dist = new EnumeratedDistribution(mapping)
…此操作失败,回复中出现以下错误

scala>     val dist = new EnumeratedDistribution[Long](mapping)
<console>:10: error: type mismatch;
 found   : java.util.ArrayList[org.apache.commons.math3.util.Pair[Long,scala.Double]]
 required: java.util.List[org.apache.commons.math3.util.Pair[Long,java.lang.Double]]
       val dist = new EnumeratedDistribution[Long](mapping)
scala>val dist=new EnumeratedDistribution[Long](映射)
:10:错误:类型不匹配;
找到:java.util.ArrayList[org.apache.commons.math3.util.Pair[Long,scala.Double]]
必需:java.util.List[org.apache.commons.math3.util.Pair[Long,java.lang.Double]]
val dist=新枚举分布[Long](映射)

我的印象是,
java.util.List
是抽象的,因此必须使用类似于
ArrayList
的东西。我相信这是件小事。想法?

您的问题来自
Double
类型:
java.lang.Double
是您使用
scala.Double
时需要的

只需尝试:

val mapping = new java.util.ArrayList[Pair[Long, java.lang.Double]]()
那么它应该可以工作,因为正如您自己所说,
ArrayList
实现了
List