복붙노트

[SCALA] 어떻게를 java.util.List에 scala.List를 변환하는?

SCALA

어떻게를 java.util.List에 scala.List를 변환하는?

어떻게 자바를 java.util.List로 스칼라의 scala.List를 변환하는?

해결법

  1. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    4.나는 대답한다하지만 꽤 오래된 질문은, 주어진하지만 제안의 대부분은 사용되지 않습니다.

    나는 대답한다하지만 꽤 오래된 질문은, 주어진하지만 제안의 대부분은 사용되지 않습니다.

    import scala.collection.JavaConversions.seqAsJavaList
    
    val myList = List("a", "b", "c")
    val myListAsJavaList = seqAsJavaList[String](myList)
    
  5. ==============================

    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. ==============================

    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. ==============================

    7.단일 호출의 경우, 손으로 그 일을하는 것은 가장 간단한 해결책이 될 수 있습니다

    단일 호출의 경우, 손으로 그 일을하는 것은 가장 간단한 해결책이 될 수 있습니다

    val slist = List (1, 2, 3, 4)          
    val jl = new java.util.ArrayList [Integer] (slist.size)
    slist.foreach (jl.add (_))   
    

    나는 성능을 측정하지 않았다.

  8. ==============================

    8.심지어 자바 측에서 불변의리스트를 생성 위의 제안으로 그냥하고. 내가 찾은 유일한 작업 해결책은 이것이다 :

    심지어 자바 측에서 불변의리스트를 생성 위의 제안으로 그냥하고. 내가 찾은 유일한 작업 해결책은 이것이다 :

    def toJList[T](l:List[T]):util.List[T] = {
      val a = new util.ArrayList[T]
      l.map(a.add(_))
      a
     }
    
  9. ==============================

    9.스칼라 이후 2.12.0 JavaConversions은 더 이상 사용되지 않습니다.

    스칼라 이후 2.12.0 JavaConversions은 더 이상 사용되지 않습니다.

    나를 위해 가장 간단한 해결책은 그래서 :

    java.util.Arrays.asList("a","b","c")
    
  10. from https://stackoverflow.com/questions/2429944/how-to-convert-a-scala-list-to-a-java-util-list by cc-by-sa and MIT license