1
resposta

Desafio 7

// CLASSE PRODUTO:

public class Produto {
private String nome;
private double preco;
private String categoria;

public Produto(String nome, double preco, String categoria) {
    this.nome = nome;
    this.preco = preco;
    this.categoria = categoria;
}

public String getNome() {
    return nome;
}

public double getPreco() {
    return preco;
}

public String getCategoria() {
    return categoria;
}

@Override
public String toString() {
    return "Nome: " + nome +
            " - Preco: " + preco +
            " - Categoria: " + categoria;
}

}

// CLASSE MAIN:

public class Main {
public static void main(String[] args) {
List 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")
);

    List<Produto> produtosQualificados = produtos.stream()
            .filter(p -> p.getCategoria().equals("Eletrônicos"))
            .filter(p -> p.getPreco() < 1000)
            .sorted(Comparator.comparing(Produto::getPreco))
            .toList();


    produtosQualificados.forEach(System.out::println);
}

}

1 resposta

Oi, Yannick! Como vai?

Você encadeou corretamente os streams, usando dois filter seguidos e depois o sorted, deixando o fluxo bem organizado e legível. O uso do método de referência Produto::getPreco também foi uma escolha muito boa.

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