1
resposta

Desafios

1º DESAFIO

public static void main(String[] args) {
        List<Integer> numeros = Arrays.asList(10, 20, 30, 40, 50);

        DoubleSummaryStatistics est = numeros.stream()
                .collect(Collectors.summarizingDouble(Integer::doubleValue));

        System.out.println("O maior númer é : " + est.getMax());

        // outra forma

        Integer maior = Collections.max(numeros);

        System.out.println("Maior número : " + maior);

            }
        }

2º DESAFIO

public class Principal {

        public static void main(String[] args) {
            List<String> nomes = Arrays.asList("Alice", "Bob", "Charlie");

            String resultado = String.join(",", nomes);

            System.out.println(resultado);
        }
    }

3ºDESAFIO

public static void main(String[] args) {
                List<String> nomes = Arrays.asList("Alice", "Bob", "Charlie");

                String resultado = String.join(",", nomes);

                System.out.println(resultado);
            }

4º DESAFIO

public static void main(String[] args) {
            List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6);


            int soma = numeros.stream()
                    .filter(n -> n % 2 == 0)
                    .map(e -> e * e)
                    .mapToInt(Integer::intValue)
                    .sum();

            System.out.println(soma);

        }
    }

5º DESAFIO

public class Principal {
        public static void main(String[] args) {
            List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6);

            Map<String, List<Integer>> resultado = numeros.stream()
                    .collect(Collectors.groupingBy(n -> n % 2 == 0 ? "Pares" : "Ímpares"));

            System.out.println(resultado);

        }
    }

6º, 7º, 8º E 9º DESAFIO

public class Principal {

        public static void main(String[] args) {
            List<Produto> produtos = Arrays.asList(
                    new Produto("Smartphone", 800.0, "Eletrônicos"),
                    new Produto("Notebook", 1500.0, "Eletrônicos"),
                    new Produto("Teclado", 200.0, "Eletrônicos"),
                    new Produto("Cadeira", 300.0, "Móveis"),
                    new Produto("Monitor", 900.0, "Eletrônicos"),
                    new Produto("Mesa", 700.0, "Móveis")
            );

            // código usando streams

            Map<String, List<Produto>> separadosPorCategoria = produtos.stream()
                            .collect(Collectors.groupingBy(Produto::getCategoria));

            Map<String, Long> contagem = produtos.stream()
                            .collect(Collectors.groupingBy(Produto::getCategoria, Collectors.counting()));

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

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

            System.out.println("Desafio 6: " + separadosPorCategoria);
            System.out.println("Desafio 7: " + contagem);
            System.out.println("Desafio 8: " + oMaisCaro);
            System.out.println("Desafio 9: " + somaPorCategoria);


        }
    }
1 resposta

Oi, Barbara! Como vai?

Agradeço por compartilhar.

Gostei da sua organização ao resolver todos os desafios, importante notar como você aplicou streams, lambdas e coletores de forma clara, mostrando que entendeu bem a proposta da aula e conseguiu explorar diferentes abordagens, como no uso de estatísticas, filtros, agrupamentos e operações de soma.

Continue praticando desse jeito, isso fortalece muito sua leitura de código e tomada de decisão ao escolher a melhor solução.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!