それは周りに他の方法よりも、ScalaでJavaコレクションを使用する方が簡単ですが、あなたが求めているので:
import scala.collection.immutable.*;
public class foo {
public List test() {
List nil = Nil$.MODULE$; // the empty list
$colon$colon one = $colon$colon$.MODULE$.apply((Integer) 1, nil); // 1::nil
$colon$colon two = $colon$colon$.MODULE$.apply((Integer) 2, one); // 2::1::nil
System.out.println(one);
System.out.println(two);
return two;
}
}
これはクラスパスにScalaの-library.jarでのjavacでコンパイル:
javac -classpath /opt/local/share/scala-2.9/lib/scala-library.jar foo.java
あなたはScalaのREPLから呼び出すことができます。
scala> (new foo).test
List(1)
List(2, 1)
res0: List[Any] = List(2, 1)
はスカラ座からJavaコレクションを使用するには、特別な何かをする必要はありません。
scala> new java.util.ArrayList[Int]
res1: java.util.ArrayList[Int] = []
scala> res1.add(1)
res2: Boolean = true
scala> res1
res3: java.util.ArrayList[Int] = [1]
Java ArrayListコンパイルを使って、比較のために実行するScalaコードを書くことができると思います。後で両方ともJVMで実行されます。 JavaでScalaのリストをインポートできるかどうかは不明です。しかし、私はScala n00bです。おそらく間違っている。 – Nishant
java.util.Listに相当するScalaは、collection.mutable.Bufferです。 – David
どのようなテストですか?どのようなシナリオですか?どのアルゴリズム?スカラリストはデフォルトでは不変であり、関数型プログラミングパターンで使用されるはずです。それはJavaからそれらを使用する意味がありません。 Scala 'ArrayList'と非常によく似た' ArrayBuffer'を試すことができます。 – paradigmatic