Untitled
unknown
plain_text
2 years ago
4.6 kB
16
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...