Untitled
unknown
plain_text
2 years ago
4.6 kB
15
Indexable
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 + " больше нет в таблице."); } } }
Editor is loading...