Article image
Edson Yamazaki
Edson Yamazaki24/08/2023 13:42
Compartilhe

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.

    image

    Use o Stream API para retornar a lista de String:

    image

    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:

    image

    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.

    Compartilhe
    Comentários (0)