0
respostas

Desafio Spring - 4

  • Dada a lista de números inteiros a seguir, encontre o maior número dela.
List<Integer> numeros = Arrays.asList(10, 20, 30, 40, 50);

        IntSummaryStatistics est = numeros.
                stream().
                mapToInt(n -> n).
                summaryStatistics();
        System.out.println(est.getMax());
  • Dada a lista de palavras (strings) abaixo, agrupe-as pelo seu tamanho. No código a seguir, há um exemplo prático do resultado esperado.
List<String> palavras = Arrays.asList("java", "stream", "lambda", "code");
        Map<Integer, List<String>> words = palavras.
                stream().collect(Collectors.groupingBy(String::length));
  • Dada a lista de nomes abaixo, concatene-os separados por vírgula. No código a seguir, há um exemplo prático do resultado esperado.
 List<String> nomes = Arrays.asList("Alice", "Bob", "Charlie");
        String res = nomes.stream().collect(Collectors.joining(", "));
  • Dada a lista de números inteiros abaixo, calcule a soma dos quadrados dos números pares.
List<Integer> numeros1 = Arrays.asList(1, 2, 3, 4, 5, 6);
        var SomaQuadrados = numeros1.stream()
                .filter( n-> n%2 == 0)
                        .map(n -> n*n)
                                .reduce(0, Integer::sum);
        System.out.println("stats" + SomaQuadrados);
  • Dada uma lista de números inteiros, separe os números pares dos ímpares.
 List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
        Map<Boolean, List<Integer>> particionado = numbers
                .stream()
                .collect(Collectors.partitioningBy(n -> n %2 ==0));
        System.out.println("Pares: " + particionado.get(true));
        System.out.println("Pares: " + particionado.get(false));
  • Dada a lista de produtos acima, agrupe-os por categoria em um Map<String, List>.
Map<String,List<Produto>> produtosCategoria = produtos.stream()
                .collect(Collectors.groupingBy(Produto::getCategoria));
  • Dada a lista de produtos acima, conte quantos produtos há em cada categoria e armazene em um Map<String, Long>.
Map<String, Long> produtosQuantidade = produtos.stream()
                        .collect(Collectors.groupingBy(Produto:: getCategoria, Collectors.counting()));
```	
* 	Dada a lista de produtos acima, encontre o produto mais caro de cada categoria e armazene o resultado em um Map<String, Optional<Produto>>.
    

Map<String, Optional> ProdutoMaisCaro = produtos.stream() .collect(Collectors.groupingBy(Produto::getCategoria,Collectors. maxBy(Comparator.comparingDouble(Produto::getPreco))));

    
* Dada a lista de produtos acima, calcule o total dos preços dos produtos em cada categoria e armazene o resultado em um Map<String, Double>.

Map<String, Double> somaPrecoPorCategoria = produtos.stream() .collect(Collectors.groupingBy(Produto::getCategoria, Collectors.summingDouble(Produto::getPreco)));