타이 브레이커 투표
다른 투표를 가지고 있지만, 동일한 높은 점수로 최고 세계에 대한 선택을 제한합니다.
임의의 타이 브레이커
에서 다음에 표시된 같은 넥타이, 휴식 난수 생성기를 사용하여 오래된
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()));
또는 최신 투표
추적을 각 세계에 대한 가장 오래된 투표 또는 최신 투표의 타임 스탬프는 또한 동점을 없애기 위해 사용될 수 있습니다. 예를 들어, 가장 오래된 투표를 추적하면 (연계 집합에 대한) 첫 번째 세계 투표에 우선 순위가 부여되는 반면, 가장 최근의 투표는 투표 된 마지막 세계에 우선합니다. 나는 이것이 실용적이며 운동으로서 만 언급 할 지 확신하지 못한다.
투표가 끝나면 정수가 내림차순으로 정렬됩니다. 그런 다음 [0] (인덱스 0)을 선택하기 만하면됩니다. 이것은 (만약 내가 맞다면) 두 개 또는 그 이상의 카운트가 동일한 경우 임의의 기회를 갖습니다. –