【问题标题】:How to convert intArray to ArrayList<Int> in Kotlin?如何在 Kotlin 中将 intArray 转换为 ArrayList<Int>?
【发布时间】:2017-02-23 11:20:24
【问题描述】:

来自

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

我需要转换成ArrayList&lt;Int&gt;

我试过array.toTypedArray()

但它改为Array&lt;Int&gt;

【问题讨论】:

标签: java kotlin


【解决方案1】:

您可以通过简单的toList 调用获得List&lt;Int&gt;,如下所示:

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) } }
}

【讨论】:

  • 请参阅@ilya 对惯用 API 使用的回答
【解决方案2】:

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

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

【讨论】:

  • 这是预期的 API
  • @IgorGanapolsky 它应该。您可以在 play.kotlinlang.org 上尝试此代码:pl.kotl.in/9s_sfYftP
  • @Ilya 你如何在 kotlin obline 编译器上创建短 url?
猜你喜欢
  • 1970-01-01
  • 2020-05-13
  • 2021-10-13
  • 2017-12-18
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多