如何在 Kotlin 中将 intArray 转换为 ArrayList<Int>?

2022-08-31 22:23:19

val array = intArrayOf(5, 3, 0, 2, 4, 1, 0, 5, 2, 3, 1, 4)

我需要转换为ArrayList<Int>

我试过array.toTypedArray()

但它改为Array<Int>


答案 1

您可以使用 toCollection 函数并指定为要填充的可变集合:ArrayList

val arrayList = intArrayOf(1, 2, 5).toCollection(ArrayList())

答案 2

你可以通过一个简单的 toList 调用,如下所示:List<Int>

val list = intArrayOf(5, 3, 0, 2).toList()

但是,如果您确实需要,也可以创建它:ArrayList

val list = arrayListOf(*intArrayOf(5, 3, 0, 2).toTypedArray())

或者按照@Ilya的建议使用更惯用的 Kotlin API:

val arrayList = intArrayOf(1, 2, 5).toCollection(ArrayList())

或者,如果您想自己完成上述操作并保存一些分配:

val arrayList = intArrayOf(5, 3, 0, 2).let { intList ->
    ArrayList<Int>(intList.size).apply { intList.forEach { add(it) } }
}

推荐