[SCALA] 어떻게를 java.util.List에 scala.List를 변환하는?
SCALA어떻게를 java.util.List에 scala.List를 변환하는?
어떻게 자바를 java.util.List로 스칼라의 scala.List를 변환하는?
해결법
-
==============================
1.전자는 불변이고, 후자는 변경할 수 있기 때문에 스칼라 목록 및 Java 목록, 두 개의 서로 다른 짐승이다. 그래서, 다른 하나를 얻으려면, 먼저 변경 가능한 콜렉션으로 스칼라 목록을 변환해야합니다.
전자는 불변이고, 후자는 변경할 수 있기 때문에 스칼라 목록 및 Java 목록, 두 개의 서로 다른 짐승이다. 그래서, 다른 하나를 얻으려면, 먼저 변경 가능한 콜렉션으로 스칼라 목록을 변환해야합니다.
스칼라 2.7의 경우 :
import scala.collection.jcl.Conversions.unconvertList import scala.collection.jcl.ArrayList unconvertList(new ArrayList ++ List(1,2,3))
스칼라 2.8에서 이후 :
import scala.collection.JavaConversions._ import scala.collection.mutable.ListBuffer asList(ListBuffer(List(1,2,3): _*)) val x: java.util.List[Int] = ListBuffer(List(1,2,3): _*)
변환이 암시 적으로 마지막 줄에 의해 입증으로 예상되는 유형, 자바 목록 경우 그러나, 예 asList 필요가 없습니다.
-
==============================
2.확실하지 이것은 이전에 언급되지 않은하지만 가장 직관적 인 방법은 직접 스칼라 목록 JavaConverters의 asJava 데코레이터 메소드를 호출하는 것입니다 생각하는 이유 :
확실하지 이것은 이전에 언급되지 않은하지만 가장 직관적 인 방법은 직접 스칼라 목록 JavaConverters의 asJava 데코레이터 메소드를 호출하는 것입니다 생각하는 이유 :
scala> val scalaList = List(1,2,3) scalaList: List[Int] = List(1, 2, 3) scala> import scala.collection.JavaConverters._ import scala.collection.JavaConverters._ scala> scalaList.asJava res11: java.util.List[Int] = [1, 2, 3]
-
==============================
3.우리는 다음과 같은 목록을 가지고 가정 :
우리는 다음과 같은 목록을 가지고 가정 :
scala> val scalaList = List(1,2,3) scalaList: List[Int] = List(1, 2, 3)
당신은 명시하고 변환 할 정확히 무엇을 말하고 싶은 경우 :
scala> import scala.collection.JavaConverters._ import scala.collection.JavaConverters._ scala> scalaList.asJava res11: java.util.List[Int] = [1, 2, 3]
당신이 공동 제어 변환을 원하는하지 않는 경우 컴파일러는 당신을위한 암시 적 작업을합니다
scala> import scala.collection.JavaConversions._ import scala.collection.JavaConversions._ scala> val javaList: java.util.List[Int] = scalaList javaList: java.util.List[Int] = [1, 2, 3]
당신이 당신의 코드를 제어하는 방법 그것은 당신에게 달려 있습니다.
-
==============================
4.나는 대답한다하지만 꽤 오래된 질문은, 주어진하지만 제안의 대부분은 사용되지 않습니다.
나는 대답한다하지만 꽤 오래된 질문은, 주어진하지만 제안의 대부분은 사용되지 않습니다.
import scala.collection.JavaConversions.seqAsJavaList val myList = List("a", "b", "c") val myListAsJavaList = seqAsJavaList[String](myList)
-
==============================
5.최신 정보
최신 정보
스칼라 2.9.2 :
import scala.collection.JavaConversions._ import scala.collection.mutable.ListBuffer val x: java.util.List[Int] = ListBuffer( List( 1, 2, 3 ): _* )
결과
[1, 2, 3]
-
==============================
6.스칼라 2.13, 패키지 scala.jdk.CollectionConverters를 시작하면 서열의 포주를 통해 asJava을 제공하며 패키지 scala.collection.JavaConverters / JavaConversions를 대체합니다
스칼라 2.13, 패키지 scala.jdk.CollectionConverters를 시작하면 서열의 포주를 통해 asJava을 제공하며 패키지 scala.collection.JavaConverters / JavaConversions를 대체합니다
import scala.jdk.CollectionConverters._ // val scalaList: List[Int] = List(1, 2, 3) scalaList.asJava // java.util.List[Int] = [1, 2, 3]
-
==============================
7.단일 호출의 경우, 손으로 그 일을하는 것은 가장 간단한 해결책이 될 수 있습니다
단일 호출의 경우, 손으로 그 일을하는 것은 가장 간단한 해결책이 될 수 있습니다
val slist = List (1, 2, 3, 4) val jl = new java.util.ArrayList [Integer] (slist.size) slist.foreach (jl.add (_))
나는 성능을 측정하지 않았다.
-
==============================
8.심지어 자바 측에서 불변의리스트를 생성 위의 제안으로 그냥하고. 내가 찾은 유일한 작업 해결책은 이것이다 :
심지어 자바 측에서 불변의리스트를 생성 위의 제안으로 그냥하고. 내가 찾은 유일한 작업 해결책은 이것이다 :
def toJList[T](l:List[T]):util.List[T] = { val a = new util.ArrayList[T] l.map(a.add(_)) a }
-
==============================
9.스칼라 이후 2.12.0 JavaConversions은 더 이상 사용되지 않습니다.
스칼라 이후 2.12.0 JavaConversions은 더 이상 사용되지 않습니다.
나를 위해 가장 간단한 해결책은 그래서 :
java.util.Arrays.asList("a","b","c")
from https://stackoverflow.com/questions/2429944/how-to-convert-a-scala-list-to-a-java-util-list by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] SBT 정지 종료하지 않고 실행 (0) | 2019.11.11 |
---|---|
[SCALA] 스칼라에서 memoize하는 일반적인 방법이 있나요? (0) | 2019.11.11 |
[SCALA] 스파크 dataframe로부터 NULL 값을 필터링하는 방법 (0) | 2019.11.11 |
[SCALA] 어떻게 스파크 SQL에서 내림차순으로 열을 기준으로 정렬하려면? (0) | 2019.11.11 |
[SCALA] Build.scala, %와 의미 %% 문자 (0) | 2019.11.11 |