Posso usar o método .add ou .remove em uma lista após a lista ser declarada como List.of()?
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!
Posso usar o método .add ou .remove em uma lista após a lista ser declarada como List.of()?
Olá, Rafael! Como vai?
Sua dúvida sobre adicionar ou remover itens de uma lista declarada com List.of() é muito comum entre quem está aprendendo Java, então vamos entender isso com calma.
Infelizmente, não é possível usar os métodos .add ou .remove em uma lista criada com List.of(). Isso ocorre porque esse método cria uma lista imutável, ou seja, uma lista que não pode ser modificada após a sua criação. Se você tentar adicionar ou remover elementos, o Java lançará uma exceção do tipo UnsupportedOperationException, interrompendo a execução do programa.
Essa característica existe por design: listas imutáveis são úteis quando você quer garantir que os dados não serão alterados acidentalmente ao longo do código.
Se você precisa de uma lista que possa ser modificada após a criação, a solução é usar uma lista mutável, como ArrayList. Veja o exemplo abaixo:
List<String> lista = new ArrayList<>(List.of("Elemento1", "Elemento2", "Elemento3"));
lista.add("Elemento4");
lista.remove("Elemento2");
Nesse exemplo, criamos uma ArrayList a partir de uma lista imutável e, em seguida, adicionamos e removemos elementos conforme necessário. Essa abordagem é bastante prática e muito utilizada no dia a dia do desenvolvimento com Java.
Compreender a diferença entre listas mutáveis e imutáveis é um passo importante para escrever um código mais seguro e previsível.
Espero ter ajudado e bons estudos!
Você já conhecia a diferença entre List.of() e ArrayList, ou essa foi a primeira vez que encontrou esse comportamento no seu código?
Eu conhecia o ArryList e não o List.of mas minha dúvida foi solucionada, obrigado.