Задать вопрос
@dc65k

Как правильно закончить решение задачи про валюты (Java)?

Всем привет. Подскажите, как правильно закончить решение данной задачи (строки // ????)?
Результат
Первое значение, функций всех операций по buy.
Вторая сумма всех операций по sell.

И второй момент, как указать Generics?
List list1 = new ArrayList<>();
list1.add("usd");
list1.add("buy");
list1.add(10000);


package main.java;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Main {
    /*
    output:
    {
        usd: [10000, 30000],
        gbd: [9000, 0],
        eur: [0, 7000],
        uah: [10000, 0],
    }

     */

    public static void getCurrencyData(List data) {
        Map<String, List> map = new HashMap<>();

        List<Integer> initialValues = new ArrayList<>();
        initialValues.add(0);
        initialValues.add(0);

        for (Object currentValue : data) {
            List current = (List) currentValue;

            String currency = (String) current.get(0);
            String type = (String) current.get(1);
            Integer amount = (Integer) current.get(2);

            if (!map.containsKey(currency)) {
                map.put(currency, initialValues);
            }

            if (map.containsKey(currency) && type == "buy") {
//                Integer value = (Integer) map.get(currency).get(0);
//                System.out.println("value " + value);
//                System.out.println("currency " + currency + " value + amount " + (value + amount));
//                System.out.println("=====");

//                map.get(currency).set(0, value + amount); // ????
            } else {
                Integer value = (Integer) map.get(currency).get(1);
                System.out.println("value " + value);
                System.out.println("currency " + currency + " value + amount " + (value + amount));
                System.out.println("=====");

//                map.get(currency).set(1, value + amount); // ????
            }
        }

        System.out.println("map " + map);

    }

    public static void main(String[] args) {
        List data = new ArrayList<>();

        List list1 = new ArrayList<>();
        list1.add("usd");
        list1.add("buy");
        list1.add(10000);

        List list2 = new ArrayList<>();
        list2.add("usd");
        list2.add("sell");
        list2.add(5000);

        List list3 = new ArrayList<>();
        list3.add("gbd");
        list3.add("buy");
        list3.add(9000);

        List list4 = new ArrayList<>();
        list4.add("eur");
        list4.add("sell");
        list4.add(7000);

        List list5 = new ArrayList<>();
        list5.add("uah");
        list5.add("buy");
        list5.add(10000);

        List list6 = new ArrayList<>();
        list6.add("usd");
        list6.add("sell");
        list6.add(25000);

        data.add(list1);
        data.add(list2);
        data.add(list3);
        data.add(list4);
        data.add(list5);
        data.add(list6);

        getCurrencyData(data);
    }
}
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы