Итак, у меня будет 4 региона: Америка, Африка, ЕС и Ближний Восток.
Я подумываю о создании карты типа ,
Код: Выделить всё
UserId1 - Region1
UserId2 - Region2
UserId3 - Region2
UserId4 - Region4
UserId5 - Region3
Код: Выделить всё
UserId3 - Region2
При каждом вызове .put() я хочу выполнить обратный вызов, чтобы узнать, существует ли уже идентификатор пользователя. (Поэтому он не добавляет один и тот же uid дважды)
Затем после '.put()'
я хочу посмотреть, существует ли хотя бы один экземпляр каждого региона, сопоставить 4 пользователей из 4 отдельных регионов (начиная сверху, чтобы был сопоставлен пользователь, который ждал больше всего времени), верните эту информацию и очистите/освободите эти 4 экземпляра с карты.
Код: Выделить всё
Map hm
= new HashMap();
hm.put(userId1, Region1);
hm.put(userId2, Region2);
hm.put(userId3, Region2);
hm.put(userId4, Region4);
hm.put(userId5, Region3);
for (Map.Entry me : //this might be used to check if a userId exists, so when there is a put operation I can return error
System.out.print(me.getKey() + ":");
System.out.println(me.getValue());
}
Каков хороший подход к этому? Как я могу реализовать это в коде?
Я хочу реализовать обратный вызов для каждой вставки, как я могу добиться этого в коде?
ОБНОВЛЕНИЕ:
Кажется, я могу проверить, существует ли каждый регион хотя бы один раз.
Boolean containsAll = false;
containsValue(Region1)
containsValue(Region2)
containsValue(Region3)
containsValue(Region4)
Подробнее здесь: https://stackoverflow.com/questions/782 ... n-callback
Мобильная версия