我需要编写一个代码来比较
Java的ArrayList和Scala的List的性能.我很难让Scala列表在我的Java代码中工作.有些人可以发表一个真正简单的“你好世界”的例子,说明如何在java代码(.java文件)中创建一个Scala列表,并添加说100个随机数字?
PS:我非常擅长Java,但从未使用过Scala.
解决方法
在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)
要使用Scala的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]