Mam następującą strukturę w Scali:
import java.util.ArrayList
val array = new ArrayList[ArrayList[String]]
// ... add values to array
Teraz muszę to przekonwertować Seq[Seq[String]]
, Jak można to osiągnąć?
Odpowiedzi:
2 dla odpowiedzi № 1Możesz wykonać następujące czynności,
import scala.collection.JavaConversions._
val array = new ArrayList[ArrayList[String]]
val seq: Seq[Seq[String]] = array.map(_.toSeq)
...
Daj mi znać, jeśli to pomoże, na zdrowie.
1 dla odpowiedzi nr 2
Drugie rozwiązanie wykorzystujące jawne konwersje:
import scala.collection.JavaConverters._
import java.util.ArrayList
val array = new ArrayList[ArrayList[String]]
// Mutable, default conversion for java.util.ArrayList
val mutableSeq : Seq[Seq[String]] = array.asScala.map( _.asScala)
// Immutable, using toList on mutable conversion result
val immutableSeq : Seq[Seq[String]] = array.asScala.toList.map( _.asScala.toList)
Aby wyjaśnić różnicę między Java JavaConverters a JavaConversions, przeczytaj:
Jaka jest różnica między JavaConverters a JavaConversions w Scali?