Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] ultimo projeto do curso

import br.com.jp.buy.Buy;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Buy buy = new Buy();
        int choise;

        while (true) {
            buy.Bought();

            System.out.println("                                          ");
            System.out.println("                                          ");
            System.out.println("do you need anything else? 1- Yes / 2- No ");
            choise = scanner.nextInt();


            if (choise == 2) {
                buy.Printlist();
                break;
            } else {
                continue;
            }
        }

    }
}package br.com.jp.buy;

import java.util.*;

public class Buy {
    Scanner scanner = new Scanner(System.in);
    private double LimitCard;
    private String Item;
    private double Value;
    private Map<String, Double> Products = new LinkedHashMap<>();

    public double getValue() {
        return Value;
    }

    public Buy() {
        System.out.println("what is your card limit");
        LimitCard = scanner.nextDouble();

    }

    public void Bought() {
        scanner.nextLine();
        System.out.println("what you need?");
        Item = scanner.nextLine();
        System.out.println("how much is?");
        Value = scanner.nextDouble();

        if (Value > LimitCard) {
            System.out.println("you dont have limit for buy : " + Item);
        } else {
            Products.put(Item, Value);
            System.out.println("congratulations you bought:  " + Item);
            System.out.println("---------------------------------------");
            LimitCard -= Value;
            System.out.println("ok tanks for your acquisition ;)");
            System.out.println("                                 ");

            System.out.println("your limit is: " + LimitCard);
        }
    }

    public void Printlist() {

        List<Map.Entry<String, Double>> sortedProducts = new ArrayList<>(Products.entrySet());
        sortedProducts.sort(Map.Entry.comparingByValue());

        String mensager = """
                ******************************
                CART OF BUY: 
                
                
                """;
        System.out.print(mensager);


        for (Map.Entry<String, Double> entry : sortedProducts) {
            System.out.println(entry.getKey() + " - " + entry.getValue());
        }

        System.out.println("******************************");

    }
}
1 resposta
solução!

Oi, Joao! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei bastante de como você organizou a lógica do carrinho usando um Map para armazenar os itens e seus valores. A ideia de ordenar os produtos pelo preço antes de exibir é um detalhe que deixa o programa mais completo.

Uma dica interessante para o futuro é usar o método Collections.reverse quando quiser inverter a ordem da lista, por exemplo, mostrar os itens do mais caro para o mais barato. Veja este exemplo:


import java.util.*;

public class TestReverse {
    public static void main(String[] args) {
        List numeros = Arrays.asList(1, 2, 3, 4, 5);

        System.out.println("Lista original: " + numeros);

        Collections.reverse(numeros);

        System.out.println("Lista invertida: " + numeros);
    }
}

Esse código inverte a ordem da lista e imprime [5, 4, 3, 2, 1].

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