Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- public class OrderSystem {
- public static void main(String[] args) throws IOException {
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- int n = Integer.parseInt(br.readLine());
- for (int i = 0; i < n; i++) {
- String input = br.readLine();
- int count = 0;
- String command;
- String commandInfo;
- while (true) {
- if (input.charAt(count) == ' ') {
- command = input.substring(0, count);
- commandInfo = input.substring(count + 1);
- break;
- }
- count++;
- }
- switch (command) {
- case "AddOrder":
- addOrder(commandInfo);
- System.out.println("Order added");
- break;
- case "DeleteOrders":
- System.out.println(deleteOrder(commandInfo));
- break;
- case "FindOrdersByPriceRange":
- findByPrice(commandInfo);
- break;
- case "FindOrdersByConsumer":
- findByConsumer(commandInfo);
- break;
- }
- }
- }
- private static HashMap<String, ArrayList<Order>> map = new HashMap<>();
- private static ArrayList<Order> allOrders = new ArrayList<>();
- private static void addOrder(String string) {
- String[] parameters = string.split(";");
- Order order = new Order(parameters[0], Double.parseDouble(parameters[1]), parameters[2]);
- allOrders.add(order);
- if (!map.containsKey(parameters[2])) {
- ArrayList<Order> list = new ArrayList<>();
- map.put(parameters[2], list);
- }
- map.get(parameters[2]).add(order);
- }
- private static String deleteOrder(String consumer) {
- if (map.get(consumer).size() == 0 || map.get(consumer).isEmpty()) {
- return "No orders found";
- } else {
- int count = map.get(consumer).size();
- if (count > 0) {
- map.get(consumer).subList(0, count).clear();
- }
- return String.format("%s orders deleted", count);
- }
- }
- private static void findByPrice(String infoStr) {
- String[] parameters = infoStr.split(";");
- Double priceFloor = Double.parseDouble(parameters[0]);
- Double priceCeiling = Double.parseDouble(parameters[1]);
- ArrayList<Order> priceList = new ArrayList<>();
- for (Order order : allOrders) {
- if (order.price >= priceFloor && order.price <= priceCeiling) {
- priceList.add(order);
- }
- }
- if (priceList.isEmpty()) {
- System.out.println("No orders found");
- } else {
- Collections.sort(priceList);
- for (Order order : priceList) {
- System.out.println(order.toString());
- }
- }
- }
- private static void findByConsumer(String consumer) {
- if (map.get(consumer).isEmpty()) {
- System.out.println("No orders found");
- } else {
- Collections.sort(map.get(consumer));
- for (int i = 0; i < map.get(consumer).size(); i++) {
- System.out.println(map.get(consumer).get(i).toString());
- }
- }
- }
- public static class Order implements Comparable<Order> {
- String name;
- Double price;
- String consumer;
- Order(String name, Double price, String consumer) {
- this.name = name;
- this.price = price;
- this.consumer = consumer;
- }
- @Override
- public String toString() {
- return String.format("{%s;%.2f;%s}", name, price, consumer);
- }
- public String getName() {
- return name;
- }
- @Override
- public int compareTo(Order order) {
- return this.name.compareTo(order.name);
- }
- }
- }
- // 99
- // AddOrder kor;23.22;Ivan
- // AddOrder kor;23.22;Ivan
- // DeleteOrders Ivan
- // FindOrdersByConsumer Ivan
- // DeleteOrders Ivan
- // 10
- // AddOrder IdeaPad Z560;1536.50;Ivan
- // AddOrder ThinkPad T410;3000;Ivan
- // AddOrder VAIO Z13;4099.99;Pesho
- // AddOrder CLS 63 AMG;200000;Gosho
- // AddOrder 320i;10000;Tosho
- // AddOrder G560;999;Ivan
- // FindOrdersByConsumer Ivan
- // DeleteOrders Ivan
- // FindOrdersByConsumer Ivan
- // FindOrdersByPriceRange 100000;200000
- // OrderSystem added
- // OrderSystem added
- // OrderSystem added
- // OrderSystem added
- // OrderSystem added
- // OrderSystem added
- // {G560;Ivan;999.00}
- // {IdeaPad Z560;Ivan;1536.50}
- // {ThinkPad T410;Ivan;3000.00}
- // 3 orders deleted
- // No orders found
- // {CLS 63 AMG;Gosho;200000.00}
- // 8
- // AddOrder IdeaPad Z560;3500.05;Ivan Petrov
- // AddOrder ThinkPad T410;3000;Ivan Petrov
- // AddOrder VAIO Z13;16400;Pesho
- // AddOrder CLS 63 AMG;21111.50;Gosho
- // FindOrdersByConsumer Ivan Petrov
- // DeleteOrders Ivan Petrov
- // FindOrdersByConsumer Ivan Petrov
- // FindOrdersByPriceRange 5000;30000
- // OrderSystem added
- // OrderSystem added
- // OrderSystem added
- // OrderSystem added
- // {IdeaPad Z560;Ivan Petrov;3500.05}
- // {ThinkPad T410;Ivan Petrov;3000.00}
- // 2 orders deleted
- // No orders found
- // {CLS 63 AMG;Gosho;21111.50}
- // {VAIO Z13;Pesho;16400.00}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement