Софтуерно Инженерство
Loading...
+ Нов въпрос
PlamenDz avatar PlamenDz 0 Точки

Помощ за задача 4 от Maps, Lampda and Stream API

Може ли някой да ми помогне с тази задача:

4. Orders
Write a program, which keeps information about products and their prices. Each product has a name, a price and its
quantity. If the product doesn’t exist yet, add it with its starting quantity.
If you receive a product, which already exists increase its quantity by the input quantity and if its price is different,
replace the price as well.
You will receive products’ names, prices and quantities on new lines. Until you receive the command "buy", keep
adding items. When you do receive the command "buy", print the items with their names and total price of all the
products with that name.

Опитах да я рша така:

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

        HashMap<String,HashMap<Double,Integer>> list = new HashMap<String,HashMap<Double, Integer>>();

        String input = "";
        while(!"buy".equals(input)){
            String[] data = sc.nextLine().split(" ");
            String product = data[0];
            double price = Double.parseDouble(data[1]);
            int quantity = Integer.parseInt(data[2]);

            if(!list.containsKey(product)){
                list.put(product, new HashMap<Double,Integer>());
                list.get(product).put(price,quantity);

            }else{
               но не зная как да достъпя и манипулирам вътршният Map.

Ако някой знае как или има готво решение ще съм много благодарен ако го сподели.

Благодаря предварително.

Тагове:
0
Fundamentals Module
Hristo13 avatar Hristo13 235 Точки

Пробвай да преработиш кода си с два мапа вместо да имаш един с вложен.

Map<String, Integer>, Map<String, Double> - в единия пазиш цената на продукта в другия quantity.

0
21/03/2019 18:25:27
PlamenDz avatar PlamenDz 0 Точки

Благодаря, това е добра идея. Не се бях сетил.

0
Hristo13 avatar Hristo13 235 Точки

По-добър вариант е. Ето и решение с вложен ама много се усложнява за тая проста задача.

 

https://pastebin.com/Wty82k6m

0
21/03/2019 19:15:27
PlamenDz avatar PlamenDz 0 Точки

Мерси. Успях да я реша с два Map-a, всъщност с три, направих един за резултата, иначе не мога да го принтирам.

Благодаря още веднъж, много ми помогна.

0