*** Codigo realizado antes de ver los videos, sin seguir las instrucciones. Lo hice como me parecia a mi por eso es distinto *** MAIN:
import Modelos.Productos;
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) {
double limiteTarjeta;
String descripcionCompra;
double valorCompra;
int condicion = 1;
List<Productos> producto = new ArrayList<>();
Scanner entrada = new Scanner(System.in);
System.out.println("Escriba el limite de la tarjeta:");
limiteTarjeta = entrada.nextDouble();
entrada.nextLine(); // limpio memoria
do {
System.out.println("Escriba la descripción de la compra:");
descripcionCompra = entrada.nextLine();
System.out.println("Escriba el valor de la compra:");
valorCompra = entrada.nextDouble();
if (limiteTarjeta >= valorCompra){
producto.add(new Productos(descripcionCompra,valorCompra));
limiteTarjeta -= valorCompra;
System.out.println("¡Compra realizada!");
}else {
System.out.println("¡Saldo insuficiente!");
break;
}
System.out.println("Escriba 0 para salir o 1 para continuar:");
condicion = entrada.nextInt();
entrada.nextLine(); //limpio la memoria
}while (condicion == 1);
//ordeno la lista de productos segun el precio
producto.sort(Comparator.comparing(Productos::getPrecio));
//itero mediante un for para ir mostrando uno por uno
System.out.println("**********\n COMPRAS REALIZADAS: ");
for (Productos p : producto){
System.out.println("- " + p.getNombre() + " $" + p.getPrecio());
}
System.out.println("**********\n Saldo de la tarjeta: $" + limiteTarjeta);
}
}
PRODUCTOS:
package Modelos;
public class Productos {
private String nombre;
private double precio;
public Productos(String nombre, double precio) {
this.nombre = nombre;
this.precio = precio;
}
public String getNombre() {
return nombre;
}
public double getPrecio() {
return precio;
}
}