Ao meu entender é fazer um codigo:
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
class Produto {
private String nome;
private String categoria;
private double preco;
public Produto(String nome, String categoria, double preco) {
this.nome = nome;
this.categoria = categoria;
this.preco = preco;
}
public String getNome() {
return nome;
}
public String getCategoria() {
return categoria;
}
public double getPreco() {
return preco;
}
@Override
public String toString() {
return "Produto{" +
"nome='" + nome + '\'' +
", categoria='" + categoria + '\'' +
", preco=" + preco +
'}';
}
}
public class Main {
public static void main(String[] args) {
List produtos = new ArrayList<>();
produtos.add(new Produto("Smartphone", "Eletrônicos", 999.99));
produtos.add(new Produto("Fone de Ouvido", "Eletrônicos", 199.99));
produtos.add(new Produto("Televisão", "Eletrônicos", 1500.00));
produtos.add(new Produto("Tablet", "Eletrônicos", 499.99));
produtos.add(new Produto("Câmera", "Eletrônicos", 1200.00));
produtos.add(new Produto("Smartwatch", "Eletrônicos", 899.99));
List<Produto> produtosFiltrados = produtos.stream()
.filter(p -> p.getCategoria().equals("Eletrônicos") && p.getPreco() < 1000)
.sorted(Comparator.comparingDouble(Produto::getPreco))
.collect(Collectors.toList());
// Exibindo os produtos filtrados e ordenados
for (Produto produto : produtosFiltrados) {
System.out.println(produto);
}
}
}
Explicação do Código:
Classe Produto : Define a estrutura de um produto com atributos nome, categoriae preco.
Lista de Produtos : Crie uma lista de produtos com alguns exemplos.
Filtragem e Ordenação :
Use stream()para processar a lista.
Filtra produtos que pertencem à categoria "Eletrônicos" e têm preço menor que R$ 1000.
Ordene os produtos filtrados pelo preço em ordem crescente.
Coleta o resultado em uma nova lista.
Exibição : Imprime os produtos filtrados e ordenados.