Qual é a diferença entre uma Lista (Array/List) e um Conjunto (Set) na programação, e quando devo escolher um em vez do outro?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Qual é a diferença entre uma Lista (Array/List) e um Conjunto (Set) na programação, e quando devo escolher um em vez do outro?
Oi, Tiago. Tudo bem?
Essa é uma daquelas dúvidas clássicas que todo mundo que está avançando na programação encara. É um excelente ponto de partida para entender como estruturar melhor os seus dados.
Para te ajudar a visualizar de um jeito bem prático, imagine que você está organizando a sua rotina e as suas coisas. A diferença principal entre os dois está em como eles guardam e como eles tratam as informações.
Vamos quebrar isso juntos:
Array ou List)Imagine a lista de compras do supermercado ou o histórico de mensagens do seu celular.
Set)Agora, imagine uma caixa onde você guarda moedas de países diferentes. Se você já tem uma moeda de 1 Real e tenta colocar outra de 1 Real, no fim das contas você ainda só tem "a moeda do Brasil" representada ali como categoria.
Set barra qualquer tentativa de duplicar um dado. Se você tentar inserir o número 5 dez vezes, ele vai guardar o número 5 apenas uma vez.Set não se importa com a ordem em que você colocou os itens. Ele espalha os elementos na memória de um jeito próprio para conseguir achá-los muito rápido depois. Por isso, você geralmente não consegue acessar um item dizendo "me dê o elemento da posição 3".Set é quase instantâneo, mesmo que ele tenha milhões de registros. Em uma lista, o programa precisa ler item por item até achar.Se você precisa manter o histórico exato das ações do seu cliente na plataforma de vendas, vá de Lista. Se você precisa apenas de uma listagem com os IDs únicos dos produtos que estão em falta no estoque, sem repetições, vá de Set.
Espero que essa explicação clareie os seus códigos por aí!