Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
4.6 kB
7
Indexable
Never
import java.util.ArrayList;
import java.util.HashMap;
class OrdersManager {
    HashMap<String, ArrayList<Double>> customersOrders;

    public OrdersManager() {
        customersOrders = new HashMap<>();
        ArrayList<Double> orders = new ArrayList<>();
        orders.add(10000.00);
        orders.add(10000.00);
        orders.add(50000.00);
        customersOrders.put("Иван И.", orders);

        orders = new ArrayList<>();
        orders.add(10000.00);
        orders.add(10000.00);
        customersOrders.put("Ольга С.", orders);

        orders = new ArrayList<>();
        orders.add(1000.00);
        customersOrders.put("Александр Т.", orders);

        orders = new ArrayList<>();
        orders.add(10000.00);
        orders.add(10000.00);
        customersOrders.put("Александр Р.", orders);

        orders = new ArrayList<>();
        orders.add(10000.00);
        orders.add(10000.00);
        orders.add(10000.00);
        orders.add(10000.00);
        customersOrders.put("Екатерина О.", orders);
    }

    void printAllOrders() {
        for (String name : customersOrders.keySet()) { // Цикл должен пройтись по ключам
            System.out.println("Заказы " + name + ":");
            ArrayList<Double> value = customersOrders.get(name);
            System.out.println(value);
        }
    }

    double getOrdersSum() {
        double sum = 0;
        for (ArrayList<Double> orders: customersOrders.values() ) { // Здесь должен быть обход по значениям
            for (double orderPrice : orders) { //обходим теперь каждый список -orders
                sum += orderPrice;
            }
        }
        return sum;
    }

    void printCustomerOrders(String customerName) {
        if (customersOrders.containsKey(customerName)) { // Проверьте, есть ли указанный ключ в таблице
            System.out.println("Заказы " + customerName + ":");
            System.out.println(customersOrders.get(customerName));
        }
    }

    String getMaxOrderCustomerName() {
        double maxOrder = 0;
        String customerName = "";
        double maxSum = 0;

        for (String name: customersOrders.keySet()) { // тут мы получаем ключи в переменную name

            for (double ordersSum: customersOrders.get(name)) { //обходим теперь каждый список -orders
                maxSum += ordersSum; // получили промежуточные Итого
            }
            if (maxSum > maxOrder) {
                maxOrder = maxSum ; // записываем наибольшее значение и обнуляем
                customerName = name;
                maxSum =0;
                } else {
                maxSum =0;
            }


        }
         // Допишите логику работы метода

        return customerName;
    }

    void removeUnprofitableOrders() {
        ArrayList<String> names = new ArrayList<>(); // Создайте список клиентов с заказами меньше 5000
        // Наполните список names

        for (String name: customersOrders.keySet()) {  // это просто список всех имен
            double ordersSum = 0; // Объявляем переменную, где будет сохранено Итого по каждому заказу

            for (double sum: customersOrders.get(name)) { //получаем значения заказов по каждому имени
                ordersSum +=sum; // получаем Итого по каждому имени
                if (ordersSum < 5000) {
                names.add (name); // делаем список из клиентов, чьи заказы меньше 5k
                }
            }
        // Удалите из хеш-таблицы тех, чьи расходы не превышают 5000
        for (String otherName : names){ // проходимся по списку names
            if (customersOrders.containsKey(name)) // ищем нужное имя в ключах хеш-таблицы
            customersOrders.remove(name); // удаляем
        }

                System.out.println("Клиента " + name + " больше нет в таблице.");
}
    }
            }