Resolvendo o desafio “Reunião de Acionistas” com Stream API
A Stream API do Java é uma parte da biblioteca padrão do Java que foi introduzida no Java 8. Ela fornece uma maneira eficiente e funcional de lidar com sequências de elementos, como coleções (Listas, Conjuntos, etc.) e arrays.
A Stream API permite realizar operações de processamento de dados de maneira concisa e expressiva, utilizando operações de filtragem, mapeamento, ordenação e redução, entre outras. As streams permitem que você trate os dados como um fluxo contínuo, evitando a necessidade de manipulação manual de loops e iteradores.
Sobre o desafio:
Basicamente desafio fornece uma lista de análise (List< Analise > analises) com valores já preenchidos e pede para você filtrar os valores com base em duas datas (período das análises).
Implemente os métodos getters da classe Analise. Se estiver usando o Intelli J como eu, pressione Alt + Insert à Getter à Selecionar os dois atributos e clique em OK, a IDE criará os getters automaticamente.
Use o Stream API para retornar a lista de String:
1 – .filter() - você consegue facilmente filtrar os valores que deseja passando uma ou mais condições dentro dos parênteses.
2 – .map() – Depois de filtrar, você pode “mapear” os valores para um novo tipo de dado, no nosso caso uma queremos somente a descrição da análise (String).
3 – .toList() – Por fim, é necessário que você informe o tipo de retorno esperado, no nosso caso, uma lista de String (List<String>).
Obs.: Decidi não expor as condicionais dentro do filter e map, justamente para que vocês procurem/explorem as soluções por vocês mesmos.
Exemplo usando os mesmos dados:
Nesse exemplo, o método obterAnalisesDesempenho retornará uma lista de descrição, dependendo do valor de entrada dataInicial.
Ex.:
dataInicial = 01/04/2023 o que será impresso: Analise de Politicas e Regulamentacoes
dataInicial = 15/02/2023 o que será impresso: Analise de Riscos e Exposicoes
Agora é com você!
Ajuste a condicional do .filter() para retornar um período desejado.