public static Integer pickWinner(ArrayList<PitchCandidate> pitch_candidates) { // pick highest ranking pitch candidate -> return_me[i] ArrayList<PitchCandidate> pitch_winners = new ArrayList(); for (PitchCandidate myPC : pitch_candidates) { System.out.println( "pitch candidate pitch: " + myPC.getPitch() + " and rank: " + myPC.getRank()); if (pitch_winners.isEmpty()) { pitch_winners.add(myPC); System.out.println( "pitch_winners is empty. adding " + myPC.getPitch() + " with rank" + myPC.getRank()); } else if (myPC.getRank() > pitch_winners.get(0).getRank()) { pitch_winners.clear(); pitch_winners.add(myPC); System.out.println( "after emptying pitch_winners adding " + myPC.getPitch() + " with rank " + myPC.getRank()); } else if (Objects.equals(myPC.getRank(), pitch_winners.get(0).getRank())) { pitch_winners.add(myPC); System.out.println( "adding " + myPC.getPitch() + " to pitch_winners with rank " + myPC.getRank()); } } int cp_winner = pitch_winners.get(0).getPitch(); if (pitch_winners.size() > 1) cp_winner = pitch_winners.get(roll.nextInt(pitch_winners.size())).getPitch(); pitch_winners.clear(); return cp_winner; }