java与scala集合相互转换
2016-11-10 22:12
363 查看
参考scala官网:
http://www.scala-lang.org/api/current/index.html#scala.collection.JavaConverters$
可以得出如下的转换对应关系:
scala.collection.Iterable <=> Java.lang.Iterable
scala.collection.Iterable <=> java.util.Collection
scala.collection.Iterator <=> java.util.{ Iterator, Enumeration }
scala.collection.mutable.Buffer <=> java.util.List
scala.collection.mutable.Set <=> java.util.Set
scala.collection.mutable.Map <=> java.util.{ Map, Dictionary }
scala.collection.mutable.ConcurrentMap <=> java.util.concurrent.ConcurrentMap
scala.collection.Seq => java.util.List
scala.collection.mutable.Seq => java.util.List
scala.collection.Set => java.util.Set
scala.collection.Map => java.util.Map
java.util.Properties => scala.collection.mutable.Map[String, String]
当然这些转换均需要在scala文件中引入,scala.collection.JavaConversions._
1、
SCALA => JAVA 的转换情景一般发生在,在SCALA中调用JAVA类中的方法。如下代码:
2、
JAVA => SCALA 一般发生在,在SCALA中使用JAVA中的集合对象。
Java代码如下,
3、测试在JAVA文件调用Scala
在使用JAVA进行机器学习时任务,比如word2Vec中word2Vec.fit(tokens)返回结果如果想要查看,发现是scala.collection.multable.Set[String,float[]]类型,此时调用对象,引入
scala.collection.JavaConversions.* 是没有作用的,猜想可能与scala本身的隐式转换机制有关系。故而对于Set的使用,参看如下代码:
scala代码
http://www.scala-lang.org/api/current/index.html#scala.collection.JavaConverters$
可以得出如下的转换对应关系:
scala.collection.Iterable <=> Java.lang.Iterable
scala.collection.Iterable <=> java.util.Collection
scala.collection.Iterator <=> java.util.{ Iterator, Enumeration }
scala.collection.mutable.Buffer <=> java.util.List
scala.collection.mutable.Set <=> java.util.Set
scala.collection.mutable.Map <=> java.util.{ Map, Dictionary }
scala.collection.mutable.ConcurrentMap <=> java.util.concurrent.ConcurrentMap
scala.collection.Seq => java.util.List
scala.collection.mutable.Seq => java.util.List
scala.collection.Set => java.util.Set
scala.collection.Map => java.util.Map
java.util.Properties => scala.collection.mutable.Map[String, String]
当然这些转换均需要在scala文件中引入,scala.collection.JavaConversions._
1、
SCALA => JAVA 的转换情景一般发生在,在SCALA中调用JAVA类中的方法。如下代码:
public static void testSet(Set<Integer> set){ for(Integer s : set){ System.out.println(s); } }Scala中调用
var set = Set[Integer](1, 2, 3, 4) CollectionsTest.testSet(set)这时候就会发送 scala set => java set 的隐式转换。
2、
JAVA => SCALA 一般发生在,在SCALA中使用JAVA中的集合对象。
Java代码如下,
public static List<String> list; static{ list = new ArrayList<>(); list.add("list1"); list.add("list2"); list.add("list3"); }在Scala中调用
val test : Iterable[String] = CollectionsTest.iterable
3、测试在JAVA文件调用Scala
在使用JAVA进行机器学习时任务,比如word2Vec中word2Vec.fit(tokens)返回结果如果想要查看,发现是scala.collection.multable.Set[String,float[]]类型,此时调用对象,引入
scala.collection.JavaConversions.* 是没有作用的,猜想可能与scala本身的隐式转换机制有关系。故而对于Set的使用,参看如下代码:
scala代码
var set = Set[Integer](1, 2, 3, 4)java 代码
public static Iterable<String> iterable; static{ Set<String> sets = new HashSet<String>(); sets.add("sets1"); sets.add("sets2"); sets.add("sets3"); iterable = sets; }
相关文章推荐
- java与scala集合相互转换
- 黑马程序员_Java中的两个常用工具类及集合数组的相互转换
- JAVA 集合List,数组,Set,Map,直接的相互转换
- java集合中:set与list相互转换
- Java 集合转换(数组、List、Set、Map相互转换)
- scala和java集合互相转换
- Java集合间的相互转换
- scala集合类型与java的转换
- Java 集合转换(数组、List、Set、Map相互转换)
- Java 集合转换 (数组、List、Set、Map相互转换)
- java中 set,list,array(集合与数组)相互转换
- Java 集合转换(数组、List、Set、Map相互转换)
- Java基础之集合与数组相互转换
- Java 集合转换(数组、List、Set、Map相互转换)
- java中 set,list,array(集合与数组)相互转换
- 【转】Java集合间的相互转换
- java中List、Array、Map、Set等集合相互转换的最佳方法
- Java 集合转换(Object[]数组、List、Set、Map相互转换)
- 【Core Java Volume 4】java中数组Array和集合之间的相互转换
- Java 集合转换(数组、List、Set、Map相互转换)