Olá, tudo bem?
Segue a minha resolução do desafio proposto abaixo.
public class Product {
private String description;
private double value;
public Product(String description, double value) {
this.description = description;
this.value = value;
}
public String getDescription() {
return description;
}
public double getValue() {
return value;
}
@Override
public int compareTo(Product anotherValue) {
return Double.valueOf(this.value).compareTo(Double.valueOf(anotherValue.value));
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<Product> products = new ArrayList<>();
boolean option = true;
System.out.println("Digite o limite do cartão: ");
double limit = scanner.nextDouble();
scanner.nextLine();
while (option) {
System.out.println("Digite a descricao da compra: ");
String description = scanner.nextLine();
System.out.println("Digite o valor da compra: ");
double value = scanner.nextDouble();
scanner.nextLine();
var product = new Product(description, value);
if (value > limit) {
System.out.println("SALDO INSUFICIENTE!");
option = false;
} else {
limit -= value;
System.out.println("Compra realizada!");
products.add(product);
boolean result = true;
while (result) {
System.out.println("Digite 0 para sair ou 1 para continuar.");
int digit = scanner.nextInt();
scanner.nextLine();
switch (digit) {
case 0:
option = false;
result = false;
break;
case 1:
result = false;
break;
default:
System.out.println("Opção inválida.");
break;
}
}
}
}
System.out.println("***************************");
System.out.println("COMPRAS REALIZADAS: ");
for (Product product : prodocuts) {
System.out.println(product.getDescription() + " - R$" + product.getValue());
}
System.out.println("Saldo do cartão: " + limit);
System.out.println("***************************");
}
}
Percebi que eu tinha esquecido de fazer a ordenação pelos valores, ao ver o vídeo da resolução eu ajustei meu código, criando a classe CreditCard com o método de lançar uma compra e na classe do produto fiz um método para comparar implementando na classe o Comparable