- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
// there is class PlayerExt, which extends class Player...
// min >= 0
// max <= players.size()
List<PlayerExt> players = playerManager.getPlayers(contestId);
Player[] response = new Player[players.size()];
for (int i = min; i < max; i++) {
response[i] = players.get(i);
if (!players.get(i).isQualified()) {
response[i].setChipStack(BigDecimal.valueOf(-1));
}
response[i].setPosition(i + 1);
response[i].setCustomerId(players.get(i).getCustomerId());
}
Для таких начальных условий, как обозначено в комментарии в начале кода, формируем список игроков.
Особенно вдохновляет самая последняя инструкция в теле цикла.
что и побудило опубликовать фрагмент. :)
Почему бы не отрефакторить в List? Или это legacy API какой-то?
Ну да, пожалуй players.get(i) действительно лучше вынести в переменную. Ну и что?
1. foreach
2. Зачем массив, когда есть List?
А куда девать setPosition(i + 1)?
> 2. Зачем массив, когда есть List?
См. http://govnokod.ru/13917#comment198991.
> resp.setCustomerId(resp.getCustomerId()) ;
Вот тут и суть. Эта строка вообще не нужна. Только лишний раз заргужает процессор. И до рефакторинга не очень сообразишь, что response[i].setCustomerId(players.get(i).getCustome rId()); надо вообще стереть.
2. Ну так сделать toArray(), если уж так нужно. Не вижу ни малейшей причины без нужды возиться с массивами.
2. Ну, никто, в общем-то не запрещает.