package ListasEColecoesDeDados.Aula5.DesafioFinal;
public class Produto implements Comparable<Produto> {
private String nome;
private double valor;
public Produto(String nome, double valor) {
this.nome = nome;
this.valor = valor;
}
public double getValor() {
return valor;
}
@Override
public int compareTo(Produto o) {
return 0;
}
@Override
public String toString() {
return "Produto: " + nome + ", valor: " + valor;
}
}
package ListasEColecoesDeDados.Aula5.DesafioFinal;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int opcao = 0;
Scanner scanner = new Scanner(System.in);
List<Produto> produtos = new ArrayList<>();
System.out.println("Digite o limite do cartão: ");
double limite = Double.parseDouble(scanner.nextLine());
while (opcao == 0) {
System.out.println("Digite o nome do produto! ");
String nome = scanner.nextLine();
System.out.println("Digite o valor do produto! ");
double valor = Double.parseDouble(scanner.nextLine());
if (valor > limite) {
System.out.println("Limite insuficiente para essa compra!");
System.out.println("Gostaria de continuar comprando? Digite 1 para parar e 0 para continuar: ");
opcao = Integer.parseInt(scanner.nextLine());
if (opcao == 1) {
produtos.sort(Comparator.comparingDouble(Produto::getValor));
for (Produto itens : produtos) {
System.out.println(itens);
}
System.out.println("Limite restante: " + limite);
break;
} else {
continue;
}
}
Produto produto = new Produto(nome, valor);
produtos.add(produto);
limite = limite - valor;
System.out.println("Produto comprado com sucesso!");
System.out.println("Gostaria de continuar comprando? Digite 1 para parar e 0 para continuar: ");
opcao = Integer.parseInt(scanner.nextLine());
if (opcao == 1) {
produtos.sort(Comparator.comparingDouble(Produto::getValor));
for (Produto itens : produtos) {
System.out.println(itens);
}
System.out.println("Limite restante: " + limite);
break;
}
}
}
}