Untitled
unknown
plain_text
2 years ago
4.6 kB
4
Indexable
import java.util.ArrayList; import java.util.HashMap; public class OrdersManager { HashMap<String, ArrayList<Double>> customersOrders; public OrdersManager() { customersOrders = new HashMap<>(); ArrayList<Double> orders = new ArrayList<>(); orders.add(154.43); orders.add(5453.98); orders.add(8776.65); customersOrders.put("Иван И.", orders); orders = new ArrayList<>(); orders.add(25343.54); orders.add(420.50); customersOrders.put("Ольга С.", orders); orders = new ArrayList<>(); orders.add(325.90); customersOrders.put("Александр Т.", orders); orders = new ArrayList<>(); orders.add(253.54); orders.add(420.50); customersOrders.put("Александр Р.", orders); orders = new ArrayList<>(); orders.add(780.54); orders.add(420.50); orders.add(36343.54); orders.add(2000.50); 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...