Java ArrayList 到 Kotlin 数组

Java ArrayList to Kotlin Array

是否有将 Java ArrayList 转换为 Kotlin 数组的简单方法?以下代码:

fun test(): Array<String> {
  val elems = ArrayList<String>()
  return elems.toArray()
}

报错:

main.kt:2:15: error: unresolved reference: ArrayList
  val elems = ArrayList<String>()
              ^

我正在解析一些 JSON 并且不知道我最终会得到多少元素,但是一旦我阅读了它们,我就不需要修改任何数据所以我想我会使用 Kotlin 数组作为数据类型。

为什么要用数组? Kotlin 数组就像 Java 数组一样是可变的。您应该使用 Kotlin List,它与 MutableList 不同,它是不可变的。 至于为什么代码不能编译:toArray returns 一个 Object[],如果你想要一个 List 中的 String[],你需要使用以 Array 作为参数的 toArray 版本。

尝试使用扩展函数toTypedArray,例如:

fun test(): Array<String> {
    val elems = arrayListOf<String>()
    return elems.toTypedArray()
}

你可以使用 kotlin list 它很容易使用为什么将 java 数组转换为 kotlin 数组都是可变的。

试试这个....

fun learnlist(){
 var stringList= listOf<String>("a","b","c","d")
    for (st in stringList)
        print(st)

    var intlist= listOf<Int>(1,2,3,4,5)
    for(i in intlist)
        print(i)

}

在 Kotlin 中将 ArrayList 转换为数组

 import java.util.*

fun main(args: Array<String>) {

    val list = ArrayList<String>()
    list.add("a")
    list.add("b")

    val array = arrayOfNulls<String>(list.size)
    list.toArray(array)

    println(Arrays.toString(array))

}

输出 : [a, b]

在 Kotlin 中将数组转换为列表

import java.util.*

fun main(args: Array<String>) {

    val array = arrayOf("a", "b")
    val list = Arrays.asList(*array)

    println(list)

}

输出:[a, b]