任何人都可以解释输出???我刚开始学习kotlin所以请尽可能详细,谢谢

问题描述 投票:-3回答:2
  • add()的优先级低于set()吗?
  • 可以使用容量/大小来区分mutablelist和arraylist吗?
fun main(args: Array<String>) {

    //get() and set()
    var arrOne:MutableList<Int> = mutableListOf<Int>(3, 7, 8)   //how does '3', '7' and '8' work?
    arrOne.add(11)
    arrOne.add(43)
    arrOne.add(35)
    arrOne.add(47)
    arrOne.set(0, 23)
    arrOne.set(1, 34)
    arrOne.set(2, 56)
    arrOne.set(3, 66)
    arrOne.set(4, 76)
    print(arrOne)
    println("\n" + arrOne.get(2))

    val arrTwo:ArrayList<String> = ArrayList<String>(3) //how does '3' work?
    println(arrTwo.size)
    arrTwo.add("x")
    arrTwo.add("t")
    arrTwo.add("c")
    arrTwo.add("g")
    arrTwo.set(1, "y")
    arrTwo.set(2, "z")
    println(arrTwo.size)
    print(arrTwo)
    println("\n" + arrTwo.get(0))
}
java android kotlin
2个回答
0
投票

我真的不明白你想说什么,但无论如何。

mutableListOf是一个使用输入参数作为初始值创建MutableList<T>的函数。这意味着这条线

mutableListOf<Int>(3, 7, 8)

将输出List<Int>,如[3, 7, 8]


ArrayList<String>(3)表示“创建一个初始容量为3个元素的ArrayList容器”。这意味着这条线

val arrTwo:ArrayList<String> = ArrayList<String>(3)

将输出List<String>,如[]

两者都可以在创建后进行变异,并且都使用IndexOutOfBoundsExceptionsetget扩展ArrayList)使用MutableList


1
投票

@LppEdd - 谢谢我弄清楚了

var arrOne:MutableList<Int> = mutableListOf<Int>(3) //will result in [3]
//add() extends the list
arrOne.add(11)  //[3, 11]
arrOne.add(43)  //[3, 11, 43]
arrOne.add(35)  //[3, 11, 43, 35]
arrOne.add(47)  //[3, 11, 43, 35, 47]
//set() replace the value at the given index
arrOne.set(0, 23)   //[23, 11, 43, 35, 47]
arrOne.set(1, 34)   //[23, 34, 43, 35, 47]
arrOne.set(2, 56)   //[23, 34, 56, 35, 47]
arrOne.set(3, 66)   //[23, 34, 56, 66, 47]
© www.soinside.com 2019 - 2024. All rights reserved.