1
resposta

[Projeto] Solução DESAFIO FINAL

public class Listas {

String nome;
int valor;

public String getNome() {
    return nome;
}

public int getValor() {
    return this.valor;
}

public Listas(String nome, int valor) {
    this.nome = nome;
    this.valor = valor;
}

@Override
public String toString() {
    return "Nome: " + this.nome + " (Valor: " + this.valor + ")";
}

}

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class Principal {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

    System.out.println("Realizando compras!");

    System.out.println("Digite o limite de credito do seu cartão!");
    int limiteCredito = sc.nextInt();
    sc.nextLine();
    String nomeProduto;
    int valorProduto;
    List<Listas> listaProduto = new ArrayList<>();

    while (true){
        System.out.println("Digite o nome do produto: ");
        nomeProduto = sc.nextLine();
        System.out.println("Digite o valor do produto: ");
        valorProduto = sc.nextInt();
        if (limiteCredito >= valorProduto){
            listaProduto.add(new Listas(nomeProduto, valorProduto));
            limiteCredito -= valorProduto;
            System.out.println("Compra realizada com sucesso!");
            System.out.println("*".repeat(50));
            if(limiteCredito == 0){
                System.out.println("Compras realizadas:");
                listaProduto.sort(Comparator.comparing(Listas::getValor));
                for (Listas lista : listaProduto) {
                    System.out.println(lista);
                }
                break;
            }
        }else {
            System.out.println("Valor insuficiente!");
            System.out.println("*".repeat(50));
            System.out.println("Compras realizadas:");
            for (Listas lista : listaProduto) {
                System.out.println(lista);
            }
            break;
        }
        System.out.println("Digite 1 para continuar ou 0 para sair");
        int validacao = sc.nextInt();
        sc.nextLine();
        if (validacao == 1){
            continue;
        }else {
            System.out.println("Programa encerrado!");
            System.out.println("*".repeat(50));
            System.out.println("Compras realizadas:");
            listaProduto.sort(Comparator.comparing(Listas::getValor));
            for (Listas lista : listaProduto) {
                System.out.println(lista);
            }
            break;
        }

    }

    sc.close();
}

}

1 resposta

Oi, Arilson.

Agradeço por compartilhar.

Gostei da sua solução do desafio, importante notar como você organizou bem a classe Listas, utilizou listas e coleções de forma clara e aplicou o Comparator para ordenar os produtos, o que está bem alinhado com a proposta do curso.

Continue praticando dessa forma, esse tipo de implementação ajuda muito a fixar os conceitos.

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