如何将Java列表传递给Scala,在Scala中过滤并返回Java?
例如:如何将Java列表传递给Scala,在Scala中过滤并返回Java?,java,list,scala,filter,Java,List,Scala,Filter,例如: package example.javascala.list; import java.util.Arrays; import java.util.List; public class UseScalaList { public static void main(String[] args) { String[] words = {"a", "very", "long", "list", "of", "words"}; List<String> lst =
package example.javascala.list;
import java.util.Arrays;
import java.util.List;
public class UseScalaList {
public static void main(String[] args) {
String[] words = {"a", "very", "long", "list", "of", "words"};
List<String> lst = Arrays.asList(words);
// Call Scala code here to filter word "a" from Java list and return back List<String> ?
}
}
package example.javascala.list;
导入java.util.array;
导入java.util.List;
公共类usescalister{
公共静态void main(字符串[]args){
String[]words={“a”、“very”、“long”、“list”、“of”、“words”};
List lst=Arrays.asList(单词);
//在这里调用Scala代码,从Java列表中过滤单词“a”并返回列表?
}
}
问题:
- 要筛选的Scala对象
java.util.List
- 如何调用Scala并获取过滤列表
import scala.collection.*;
Collection<String> filtered = JavaConversions.asJavaCollection(JavaConversions.asScalaIterable(lst).filter(...));
导入scala.collection.*;
Collection filtered=JavaConversions.asJavaCollection(JavaConversions.asScalaIterable(lst.filter)(…);
更新:
Iterable<String> scalaIterable = JavaConversions.asScalaIterable(lst);
scalaIterable.filter(...);
scalaIterable.drop(1);
scalaIterable.somethingMore(...);
Collection<String> backToJava = JavaConversions.asJavaCollection(scalaIterable);
Iterable scalaIterable=JavaConversions.asScalaIterable(lst);
可伸缩过滤器(…);
可标度压降(1);
可伸缩的。更多(…);
Collection backToJava=JavaConversions.asJavaCollection(可伸缩);
Qool oneliner!若我需要在Scala中进行几个列表转换,并将结果返回给Java呢。如何定义一个单独的Scala对象,其中包含几个从Java调用的List arg方法?谢谢!但这并不是我所期望的答案。在您的示例中,只有Java代码。看到用户定义(不是标准的Scala库)的Scala对象封装列表操作会很有趣。换句话说,Java调用仅在Scala对象上使用定义的API,并在Scala中实现。例如,Scala对象可能有进程(lst:List)
方法。此方法获取Java列表,并对其进行函数组合,如map.filter代码>。这个Scala对象是什么样子的?