Tie-Breaker Голосуйте
Есть еще один голос, но ограничивает выбор в верхние миры одинаково высоким баллом.
Случайные Tie-выключатель
Используйте генератор случайных чисел, чтобы разорвать связь, например, как показано в следующем:
Map<World, Integer> votes = new HashMap<>();
...
// Get list of entries and sort descending by value
List<Entry<World, Integer>> entries = new ArrayList<>(votes.entrySet());
Collections.sort(entries, (e1,e2) -> -e1.getValue().compareTo(e2.getValue()));
// Collect top scoring worlds
List<World> topWorlds = new ArrayList<>();
int highScore = entries.get(0).getValue();
for (Entry<World,Integer> e : entries)
if (e.getValue() == highScore)
topWorlds.add(e.getKey());
else
break;
// Pick one at random
World pick = topWorlds.get(new Random().nextInt(topWorlds.size()));
Более старые или новые ГОЛОСУЕМ
Отслеживание временная отметка самого старого или нового голосования для каждого мира также может быть использована для разрыва связей. Например, отслеживание самого старого голосования отдает предпочтение первому голосованию в мире (в наборе связей), в то время как самый новый голос отдает предпочтение последнему миру, на который проголосовали. Я не уверен, что это практично, и упомянуть об этом только как упражнение.
Я бы сказал, как только голосование закончит ваш заказ по вашему Integer. Затем просто выберите [0] (Index Zero). Это будет (если я прав), случайный шанс, если два или более имеют одинаковый счет. –