1
resposta

Exemplo funcinal do exercicio proposto

Classe Principal

import java.util.*;


public class ExemploArmazenamentoSet {

        public static void main(String[] args) {
                // Cria uma lista de transações
                List<Transacao> transacoes = List.of(
                        new Transacao(1000, "Compra"),
                        new Transacao(7000, "Transferência"),
                        new Transacao(8000, "Depósito"),
                        new Transacao(4000, "Pagamento")
                );

                // Usa Stream API para filtrar, logar, encontrar a primeira e coletar em um Set
            Set<Transacao> resultado = transacoes.stream()
                    .filter(t -> t.getValor() > 5000) // Filtra apenas as transações com valor maior que 5000
                    .peek(t -> System.out.println("Filtrada: " + t)) // Usa peek para imprimir cada transação filtrada (log)
                    .findFirst() // Busca a primeira transação que passou pelo filtro (retorna Optional<Transacao>)
                    .map(Set::of) // Se encontrar, transforma a transação em um Set com um único elemento
                    .orElse(Collections.emptySet()); // Se não encontrar nenhuma, retorna um Set vazio

                // Imprime o resultado final
                System.out.println("Resultado final no Set:");
                resultado.forEach(System.out::println);
            }
    }

Classe Transacao

public class Transacao {

    private final double valor;
    private final String descricao;

    public Transacao(double valor, String descricao) {
        this.valor = valor;
        this.descricao = descricao;
    }

    public double getValor() {
        return valor;
    }

    public String getDescricao() {
        return descricao;
    }

    @Override
    public String toString() {
        return "Transacao{" +
                "valor=" + valor +
                ", descricao='" + descricao + '\'' +
                '}';
    }
}
1 resposta

Muito bem!