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