Esse desafio envolve a API de Stream do Java para executar operações de filtragem, ordenação e mapeamento e também expressões lambda para a manipulação de coleções.
Ao final pede-se qual opção abaixo está correta:
- red, blue, black
- yellow, orange
- kcalb, eulb, der
- der, eulb, kcalb
Solucao: a primeira parte do codigo cria uma lista de string usando Arrays.asList ou seja uma lista parcialmente mutavel, que nao pode adicionar nem remover elementos.
O codigo cria uma Stream (fluxo - uma Stream é uma sequencia de elementos que oferece varias opcoes que podem ser aplicadas de maneira declarativa) da lista, e logo apos usa o metodo filter, este retorna apenas os valores da lista menores que 6 (no nosso exemplo red,black,blue)
O proximo metodo e o sorted, este ira ordenar a Stream, no exercicio e retornado e ordenado pelo tamanho da string ao contrario, ou seja em ordem decresente. Retornando black, blue, red.
O proximo comando a ser usado e o map, este retorna uma nova Stream. Neste exercicio sera retornada uma nova Stream de um new StringBuilder(cor).reverse().toString(). Cada string da lista tera seus caracteres invertidos, tendo como resultado = kcalb, eulb, der. Ou seja resposta 3 do exercicio 1.