Que tipos de coleções o Kotlin suporta?
sobes.tech IA
Resposta da IA
O Kotlin suporta os tipos padrão de coleções do Java Collection Framework, bem como as suas próprias extensões e interfaces convenientes.
Interfaces principais de coleções em Kotlin:
Collection<out E>: Interface base para uma coleção imutável.MutableCollection<E>: Interface para uma coleção mutável.List<out E>: Interface para uma coleção imutável com acesso ordenado por índice.MutableList<E>: Interface para uma coleção mutável com acesso ordenado por índice.Set<out E>: Interface para uma coleção imutável de elementos únicos sem ordem específica.MutableSet<E>: Interface para uma coleção mutável de elementos únicos sem ordem específica.Map<K, out V>: Interface para uma coleção imutável de pares "chave-valor".MutableMap<K, V>: Interface para uma coleção mutável de pares "chave-valor".
Implementações principais de coleções na biblioteca padrão do Kotlin (frequentemente usadas com funções construtoras):
ArrayList: Lista mutável baseada em array.LinkedList: Lista mutável baseada em uma lista ligada.HashSet: Conjunto mutável baseado em uma tabela hash.LinkedHashSet: Conjunto mutável baseado em uma tabela hash e uma lista ligada (mantém a ordem de inserção).HashMap: Mapa mutável baseado em uma tabela hash.LinkedHashMap: Mapa mutável baseado em uma tabela hash e uma lista ligada (mantém a ordem de inserção).
Exemplos de criação de coleções:
// Lista imutável
val immutableList = listOf("a", "b", "c")
// Lista mutável
val mutableList = mutableListOf(1, 2, 3)
// Conjunto imutável
val immutableSet = setOf("apple", "banana")
// Conjunto mutável
val mutableSet = mutableSetOf(10, 20, 30)
// Mapa imutável
val immutableMap = mapOf("key1" to "value1", "key2" to "value2")
// Mapa mutável
val mutableMap = mutableMapOf("a" to 1, "b" to 2)
A principal diferença entre as versões mutáveis (Mutable*) e imutáveis (*) reside no fato de que as coleções mutáveis oferecem métodos para adicionar, remover e modificar elementos, enquanto as coleções imutáveis não o fazem. As funções construtoras listOf, setOf, mapOf criam coleções imutáveis, e mutableListOf, mutableSetOf, mutableMapOf criam coleções mutáveis.
Vantagens de usar coleções no Kotlin:
- Segurança: Coleções imutáveis por padrão ajudam a evitar alterações não intencionais.
- Extensões: Kotlin fornece muitas funções de extensão úteis para trabalhar com coleções (
filter,map,forEach, etc.). - Interoperabilidade: É fácil trabalhar com código Java existente que usa coleções do Java Collection Framework.