- 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());
}
Для таких начальных условий, как обозначено в комментарии в начале кода, формируем список игроков.
Особенно вдохновляет самая последняя инструкция в теле цикла.
someone 09.10.2013 16:54 # −1
wissenstein 09.10.2013 17:00 # 0
что и побудило опубликовать фрагмент. :)
someone 09.10.2013 17:50 # 0
Почему бы не отрефакторить в List? Или это legacy API какой-то?
wissenstein 09.10.2013 17:55 # 0
Lure Of Chaos 11.10.2013 21:59 # +2
Qwertiy 09.10.2013 20:49 # 0
Ну да, пожалуй players.get(i) действительно лучше вынести в переменную. Ну и что?
anonimb84a2f6fd141 09.10.2013 21:08 # −2
1. foreach
2. Зачем массив, когда есть List?
wissenstein 09.10.2013 23:25 # 0
А куда девать setPosition(i + 1)?
> 2. Зачем массив, когда есть List?
См. http://govnokod.ru/13917#comment198991.
> resp.setCustomerId(resp.getCustomerId()) ;
Вот тут и суть. Эта строка вообще не нужна. Только лишний раз заргужает процессор. И до рефакторинга не очень сообразишь, что response[i].setCustomerId(players.get(i).getCustome rId()); надо вообще стереть.
anonimb84a2f6fd141 10.10.2013 02:39 # 0
2. Ну так сделать toArray(), если уж так нужно. Не вижу ни малейшей причины без нужды возиться с массивами.
wissenstein 10.10.2013 21:39 # 0
2. Ну, никто, в общем-то не запрещает.
wissenstein 09.10.2013 23:42 # 0
guest 11.10.2013 14:17 # −15
guest 11.10.2013 14:30 # −15
guest 11.10.2013 14:31 # −15
guest 11.10.2013 14:34 # −15