Реализация метода набора.
Привет,
У меня есть класс заказа, который имеет 3 переменные: "клиент(имя клиента)",
"name(название запрашиваемого товара)","count(общее количество запрашиваемого товара)".
Я хочу вызвать метод в другом классе, который имеет метод Set<order> getItemSet (), который возвращает набор и объединяет все запросы на один и тот же товар от разных клиентов следующим образом,
например:
если есть две просьбы:
- ItemN: Customer1: 3
- ItemN: Customer2: 1
Приказ должен быть:
- ItemN: Customer1,Customer2: 4
Я думал о том, чтобы хранить заказы в списке и перебирать их, чтобы проверить, сколько запросов имеет элемент, а затем хранить их в наборе для этого конкретного элемента. Но, честно говоря, я не уверен. Я вроде как заблудился. Любой намек или помощь в реализации были бы великолепны.
Что я уже пробовал:
public class Order implements Comparable<Order> { String customer; // Name of the customer String name; // Name of the requested item Integer count; // Count of the requested items public Order(String customer, String name, Integer count) { super(); this.customer = customer; this.name = name; this.count = count; } @Override public int compareTo(Order arg0) { int status; status = this.name.compareTo(arg0.name); if (status == 0){ status = this.customer.compareTo(arg0.customer); if (status == 0){ status = this.count - (arg0.count); } } if (status < 0){ status = -1; } if (status > 0){ status = 1; } return status; } public boolean equals(Object obj){ if (this == obj){ return true; } if (obj == null){ return false; } if (getClass() != obj.getClass()){ return false; } Order arg0 = (Order) obj; if (count != arg0.count){ return false; } if (customer == null){ if (arg0.customer != null) return false; } else if (!customer.equals(arg0.customer)) return false; if (name == null){ return false; }else if (!name.equals(arg0.name)){ return false; } return true; } @Override public String toString() { return "ItemName: "+ name + "OrdererName: "+ customer + " count: " + count ; } @Override public int hashCode(){ return (name + customer + count).hashCode(); } }
Это второй класс, в котором я хочу реализовать метод, возвращающий set.
public class Orders implements Iterator<Order>{ int index = 0; List<Order> orders ; public Orders(){ index = -1; orders = new ArrayList<>(); } public void add(Order item){ orders.add(item); } public List<Order> getItemsList(){ return orders; } <pre>public Set<Order> getItemsSet() { Set<Order> orderSet = new HashSet<>(); return orderSet; } <pre>@Override public void forEachRemaining(Consumer<? super Order> arg0) { // Auto-generated method stub } @Override public boolean hasNext() { // Auto-generated method stub return false; } @Override public Order next() { // Auto-generated method stub return null; } @Override public void remove() { // Auto-generated method stub } }