Desafio 6:
package desafio6;
import java.util.*;
import java.util.stream.Collectors;
public class Main {
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")
);
Map<String, List<Produto>> agrupamento = produtos.stream()
.collect(Collectors.groupingBy(Produto::getCategoria));
System.out.println(agrupamento);
}
}
Desafio 7:
package desafio7;
import java.util.*;
import java.util.stream.Collectors;
public class Main {
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")
);
Map<String, Long> quantidade = produtos.stream()
.collect(Collectors.groupingBy(Produto::getCategoria, Collectors.counting()));
System.out.println(quantidade);
}
}
Deasafio 8:
package desafio8;
import java.util.*;
import java.util.stream.Collectors;
public class Main {
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")
);
Map<String, Optional<Produto>> maisCaro = produtos.stream()
.collect(Collectors.groupingBy(Produto::getCategoria,
Collectors.maxBy(Comparator.comparingDouble(Produto::getPreco))));
System.out.println(maisCaro);
}
}
Desafio 9:
package desafio9;
import java.util.*;
import java.util.stream.Collectors;
public class Main {
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")
);
Map<String, Double> totalPrecos = produtos.stream()
.collect(Collectors.groupingBy(Produto::getCategoria,
Collectors.summingDouble(Produto::getPreco)));
System.out.println(totalPrecos);
}
}