Scalaでorg.apache.commons.math3.distribution.EnumeratedDistributionの新しいインスタンスを作成します。私ができる最善のことは、次のように動作するはずです...
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)
...これは REPL の次のエラーで失敗します...
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)
私は抽象的であるという印象を受けていたので、代わりにjava.util.List
次のようなものを使用する必要がありますArrayList
. これは些細なことだと確信しています。考え?