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);
}
}