for (MyClass mc : arrayList) {
cur_length = mc.GetX() - prev_x;
// рассматриваем отрезок (prev_x, mc.GetX()), не включая границы-точки!
// Поэтому GetY() прибавляем в конце!
// пропускаем отрезки нулевой длины - они из-за совпадающих точек и смысла не несут
if (cur_length > 0) {
// новый отрезок добавляем, только если разное количество вакансий.
if (result.size() == 0 || result[result.size() - 1].cnt != cnt) { //надо что-то из этого if`a оставить, если да, то что?
result.add(new Segment(cur_length, cnt);
} else {
result[result.size()-1].length += cur_length; //вот что тут вообще происходить должно?
}
cnt += mc.GetY();
prev_x = mc.GetX();
}
if (cur_lngth > 0) {
if (result.size() == 0) { //только 1 раз сработает когда аррей лист ==0
result.add(new Segment(cur_lngth, cnt); //добавит 1 элемент???
} else {
result.lngth += cur_lngth; //result.lngth - единственный элемент аррей листа??
}
"result[result.size()-1].length += cur_length;"
if (cur_lngth > 0) {
result.add(new Segment(cur_lngth, cnt));
result[result.size() - 1].length += cur_lngth;
cnt += mc.getY();
prev_x = mc.getX();
}
int max = 0;
for (Segment s : result) {
if (s.getCount() > max)
max = s.getCount();
}
Спасибо огромное!!!