Может кто-нибудь, пожалуйста, объясните вывод ???Я только начал изучать kotlin, поэтому, пожалуйста, будьте как можно подробнее, спасибо - PullRequest
0 голосов
/ 03 марта 2019
  • действительно ли add () имеет более низкий приоритет, чем set ()?
  • можно ли различить изменяемый список и массив данных, используя емкость / размер ???
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))
}

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

@ 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]
0 голосов
/ 03 марта 2019

Я не совсем понимаю, что вы пытаетесь сказать, но в любом случае.

mutableListOf - это функция , которая создает MutableList<T>, используя входные аргументы в качестве начальныхценности.Это означает, что строка

mutableListOf<Int>(3, 7, 8)

будет выводить List<Int>, например [3, 7, 8]


ArrayList<String>(3) означает " создать контейнер ArrayList с начальной емкостью3 элемента".Это означает, что строка

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

будет выводить List<String>, например, []

Оба могут быть видоизменены после создания, и оба будут подвергаться IndexOutOfBoundsException с использованием set илиget (ArrayList расширяется MutableList)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...