如何在 Kotlin 中添加数组索引值?

pre*_*123 3 kotlin

首先,我在伴生对象中创建空的 Array(Kotlin) 实例。

 companion object {
        var strarray: Array<String> = arrayOf()
        var objectarray: LinkedHashMap<Int, List<Any>> = LinkedHashMap<Int, List<Any>>()
    }
Run Code Online (Sandbox Code Playgroud)

我希望在从 CSV 文件读取 textString 时使用空数组实例。

 fun csvFileToString():String {

    val inputStream = File(Paths.get("").toAbsolutePath().toString()
            .plus("/src/main/SampleCSVFile_2kb.csv")).inputStream()
    val reader = inputStream.bufferedReader()
    var iterator = reader.lineSequence().iterator()
    var index:Int = 1;

    while (iterator.hasNext()){
        var lineText:String = iterator.next()
       strarray.set(index, lineText)
       index++
    }

    return ""
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行该源代码时

a.csvFileToString()
println(CsvParser.strarray)
Run Code Online (Sandbox Code Playgroud)

发生异常

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 
strarray.set(index, lineText) <<<<<<<<< because of this line
Run Code Online (Sandbox Code Playgroud)

我可以像 ArrayList(来自 java 集合)一样使用 Array(来自 kotlin 集合)吗?

小智 5

您可以使用 将新项目添加到数组中+=,例如:item += item

private var songs: Array<String> = arrayOf()
   fun add(input: String) {
        songs += input
    }
Run Code Online (Sandbox Code Playgroud)