Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Melhor maneira de deletar item da lista (?)

Olá, vi que para ele deletar um item da lista ele utilizou o iterator, mas eu fiz usando o stream <Banco.empresas= Banco.empresas.stream().filter(empresa->empresa.getId()!=id).collect(Collectors.toList());> Minha dúvida é: isso é uma boa prática ou é uma gambiarra do bem?

1 resposta
solução!

Fala Jamil,

Falar sobre stream, em geral, é um tópico com vários conceitos. No entanto, como regra geral, favoreça a API de stream ao invés de Iterators.

Com a API de streams podemos programar em um nível de abstração muito mais alto, assim como as consultas SQL, ou seja, expressamos o que queremos e deixamos a lib lidar com a complexidade.

Além disso, as operações via stream executam suas iterações nos bastidores (iteração interna), o que significa que o processamento dos dados podem ser feito em paralelo ou em uma ordem diferente que pode ser mais otimizada.

Por outro lado, se você decidir iterar explicitamente sobre sua coleção para executar alguma regra, com um Iterator, então você estará explicitamente pegando os itens da coleção e processando-os um por um.

Usar Iterators em vez da API de streams também significa que muito mais trabalho precisa ser feito quando você deseja processar em paralelo. Isso também significa que você está gastando muito mais tempo lidando com detalhes de baixo nível, em vez de se concentrar apenas no que deseja que seu programa faça.

Resumidamente, seu código usando streams está ótimo! :)

Abraço!