Avatar ·

Qual é a diferença entre List e Array em Kotlin? Quando usar cada um?

Olá, colegas! Acabei de começar a estudar Kotlin e vim do Java. Em Kotlin, existem dois tipos semelhantes: `List` e `Array`. Vejo que ambos armazenam vários elementos, mas não consigo entender qual é a diferença chave e quando usar cada um. Por exemplo, estou escrevendo um programa simples para armazenar nomes de estudantes: ```kotlin val namesArray = arrayOf("Alice", "Bob", "Charlie") val namesList = listOf("Alice", "Bob", "Charlie") ``` Ambos funcionam, posso acessar pelo índice: `namesArray[0]` e `namesList[0]` — ambos retornam "Alice". Mas notei que `Array` tem a propriedade `size`, enquanto `List` tem `count()`. Também posso alterar um elemento do array: ```kotlin namesArray[0] = "Eve" // funciona namesList[0] = "Eve" // erro de compilação ``` Por que isso? E também ouvi dizer que `List` pode ser mutável (`MutableList`), enquanto o array é sempre mutável. Mas para que serve `Array` se `MutableList` faz a mesma coisa? E como isso se relaciona com performance? Por favor, me expliquem qual é a diferença fundamental.