Skip to content

Commit 6616d77

Browse files
cawpatCallum Gibbons
andauthored
[SCALA-729] - Convert Java List to Scala Seq (#1361)
* [SCALA-729] - Convert Java List to Scala Seq * Adding more code examples * Updated unit test name * Moved ConvertJavaAListToScalaSeq to new module * Removed ConvertJavaAListToScalaSeq in old module --------- Co-authored-by: Callum Gibbons <[email protected]>
1 parent 1f5cebd commit 6616d77

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.baeldung.scala.javatoscalaseq
2+
3+
import java.util
4+
import scala.jdk.javaapi.CollectionConverters
5+
import scala.collection.JavaConverters
6+
7+
object ConvertJavaAListToScalaSeq {
8+
9+
private def takeSeq(seq: Seq[String]): String = {
10+
seq.mkString
11+
}
12+
13+
def in212(list: util.List[String]): String = {
14+
val scalaSeq: Seq[String] =
15+
JavaConverters.collectionAsScalaIterable(list).toSeq
16+
takeSeq(scalaSeq)
17+
}
18+
19+
def in213(list: util.List[String]): String = {
20+
val scalaSeq: Seq[String] = CollectionConverters.asScala(list).toSeq
21+
takeSeq(scalaSeq)
22+
}
23+
24+
def convertToList212(list: util.List[String]): String = {
25+
val scalaList: List[String] =
26+
JavaConverters.collectionAsScalaIterable(list).toList
27+
val scalaSet: Set[String] =
28+
JavaConverters.collectionAsScalaIterable(list).toSet
29+
val scalaIndexedSeq: IndexedSeq[String] =
30+
JavaConverters.collectionAsScalaIterable(list).toIndexedSeq
31+
val scalaVector: Vector[String] =
32+
JavaConverters.collectionAsScalaIterable(list).toVector
33+
takeSeq(scalaList)
34+
}
35+
36+
def convertToList213(list: util.List[String]): String = {
37+
val scalaList: List[String] = CollectionConverters.asScala(list).toList
38+
val scalaSet: Set[String] = CollectionConverters.asScala(list).toSet
39+
val scalaIndexedSeq: IndexedSeq[String] =
40+
CollectionConverters.asScala(list).toIndexedSeq
41+
val scalaVector: Vector[String] =
42+
CollectionConverters.asScala(list).toVector
43+
takeSeq(scalaList)
44+
}
45+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.baeldung.scala.javatoscalaseq
2+
3+
import java.util
4+
import org.scalatest.flatspec.AnyFlatSpec
5+
import org.scalatest.matchers.should.Matchers
6+
7+
class ConvertJavaAListToScalaSeqUnitTest extends AnyFlatSpec with Matchers {
8+
val list: util.List[String] = util.ArrayList[String]()
9+
list.add("hello")
10+
list.add(" world")
11+
12+
"212" should "return String" in {
13+
ConvertJavaAListToScalaSeq.in212(list) shouldBe "hello world"
14+
}
15+
16+
"213" should "return String" in {
17+
ConvertJavaAListToScalaSeq.in213(list) shouldBe "hello world"
18+
}
19+
20+
"convertToList212" should "return String" in {
21+
ConvertJavaAListToScalaSeq.convertToList212(list) shouldBe "hello world"
22+
}
23+
24+
"convertToList213" should "return String" in {
25+
ConvertJavaAListToScalaSeq.convertToList213(list) shouldBe "hello world"
26+
}
27+
}

0 commit comments

Comments
 (0)