Junior
Qual é a diferença entre List e Set em Dart?
sobes.tech IA
Resposta da IA
Diferenças principais:
- Conteúdo: List pode conter duplicados, Set armazena apenas elementos únicos.
- Ordem: List mantém a ordem de inserção, Set não garante uma ordem.
- Desempenho:
- Adicionar/remover: Em média, a operação de adicionar/remover um elemento no Set é mais rápida (O(1)) devido ao uso de hashing. Para List, essas operações podem ser mais lentas (até O(n)) dependendo da posição.
- Buscar: No Set, buscar um elemento por valor é mais rápido (O(1) em média) também devido ao hashing. Na List, buscar por valor requer percorrer a lista (O(n)). O acesso por índice na List é rápido (O(1)).
Exemplos:
// List - permite duplicados, mantém a ordem
List<int> numbersList = [1, 2, 2, 3, 1];
print(numbersList); // Saída: [1, 2, 2, 3, 1]
print(numbersList[0]); // Saída: 1 (acesso por índice)
// Set - apenas elementos únicos, sem garantia de ordem
Set<int> numbersSet = {1, 2, 2, 3, 1};
print(numbersSet); // Saída: {1, 2, 3} (a ordem pode variar)
// print(numbersSet[0]); // Erro: Set não suporta acesso por índice
print(numbersSet.contains(2)); // Saída: true (busca rápida)