2016-09-16 8 views
1
private static ArrayList<Game> theWinnerIs(ArrayList<Game> gamer){ 
    ArrayList<Game> winner = new ArrayList<Game>(); 
    ArrayList<Integer> points = new ArrayList<Integer>(); 
    for(int i = 0; i<gamer.size(); i=i+1){ 
     int x = gamer.get(i).getPoints(); 
     winner.add(x); 
    } 

    return winner; 
} 

У меня есть неизвестные количества элементов в геймере ArrayList. Что я хочу сделать, так это то, что я хочу, чтобы цикл через каждый элемент в ArrayList gamer и вызывал метод на каждом из них, называемый getpoints() ;, чтобы получить их оценку. Затем я хочу сравнить оценку по каждому из этих элементов и сохранить элемент с наибольшим количеством баллов в победителе ArrayList, а затем победитель. если 2 или более элемента разделяют наибольшее количество баллов, я хочу сохранить их в победителе Arraylist. поэтому я использую Arraylist, потому что я не знаю, сколько победителей.Как сравнить элементы ArrayList

Я знаю, что я должен использовать выражения для сравнения элементов. Но я не знаю, как начать их сравнивать. как получить каждое из их значений и сохранить его в if - statements. Для простоты можно сказать, что число элементов равно 3. в противном случае его неизвестно.

ответ

0

Вопрос в том, хотите ли вы хорошего результата или нет. Если нет, то вы можете просто сортировать, что ArrayList используя sort метод и обычай Comparator, что собирается быть сравнивающий очки, попробуйте это на самого начало Вашего метода:

gamer.sort((p1, p2) -> p1.getPoints().compareTo(p2.getPoints())); 

После этого, игроки/игроков (я не действительно поймите свое наименование) с самыми высокими баллами, которые будут в конце списка, если будет только один высокий балл, тогда он будет последним. Затем вам просто нужно извлечь последний из списка и проверить, если предыдущий имеет тот же балл, если он не остановится, если да, то добавьте его тоже, а затем проверьте его и т. Д.

Кроме того, ваш points в вашем коде не нужен, не забудьте удалить его, если вы не планируете ничего с ним делать.

Смежные вопросы