タイブレーカー投票
別の投票を持っていますが、同等の高得点でトップの世界への選択肢を制限します。
ランダムタイブレーカ
以下に示すようなタイ、破壊するために乱数発生器を使用して:古い
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()));
または最新の投票
追跡それぞれの世界で最も古い投票または最新の投票のタイムスタンプは、ネクタイを破るために使用することもできます。例えば、最も古い投票を追跡することは、第1世界の投票に優先順位を与え、最新の投票は投票された最後の世界を優先する。私はこれが実用的であり、それを運動としてのみ言及するかどうかはわかりません。
投票が終了するとすぐに、あなたのInteger降順で注文します。次に、[0](Index Zero)を選択するだけです。これは(私が正しいならば)2人以上が同じ数を持っているならランダムなチャンスを持つでしょう。 –