Двойная бифункция Java для манипулирования данными по итерацииJAVA

Программисты JAVA общаются здесь
Anonymous
Двойная бифункция Java для манипулирования данными по итерации

Сообщение Anonymous »

Я пишу код Java, который выглядит так, и я чувствую, что его можно улучшить с помощью некоторых функциональных программ :) < /p>

Код: Выделить всё

int rank = 1;

for (int i = 0; i < activities.size(); i++) {
if (i == 0) {
activities.get(i).setRank(rank);
else {
float currentAverage = activities.get(i).getQualityAverage();
float previousAverage = activities.get(i - 1).getQualityAverage();

activities.get(i).setRank(currentAverage == previousAverage ? rank : ++rank);
}
}
< /code>
Предполагая, что список действий сортируется, ощущение этого кода состоит в том, чтобы назначить ранги (оценку) каждому действию в соответствии с его местом в списке. But there's a rule in the else
case (when the iteration is equal or higher than second element) where I'm using the rank assigned to the previous element if both elements' qualityAverage property is exactly the same.
For instance:



Activity < /th>
среднее качество < /th>
Rank < /th>
< /tr>
< /thead>


readge < /td>
10 < /td>
< /td>
10 < /td>
< /td>
10 < /td> /> < /tr>

тренировка < /td>
>9.5.5
2 < /td>
< /tr>

write < /td>
>2.9 /> < /tr>

исследование < /td>
9.2.2
3 < /td>
< /tr>

clean < /td>
8
< /td>

/> < /tr>

воспроизводить гитару < /td>
8 < /td>
4 < /td>
< /tr>
< /tbod REATE () ) для достижения более чистого и умного кода.

Подробнее здесь: https://stackoverflow.com/questions/780 ... -iteration

Вернуться в «JAVA»