void () { if (myDirection) { int i = myCurrentIdx + 1; int maxWalk = myLeftWalk + i; myCurrentIdx = -1; for (; i < myLines.size() && i < maxWalk; i++) { final String s = myLines.get(i); if (myLine.equals(s) && ! isSeized(i)) { myCurrentIdx = i; myLeftWalk = maxWalk - 1 - i; break; } } } else { int i = myCurrentIdx - 1; int maxWalk = Math.max(-1, i - myLeftWalk); myCurrentIdx = -1; for (; i >= 0 && i > maxWalk && i < myLines.size(); i--) { final String s = myLines.get(i); if (myLine.equals(s) && ! isSeized(i)) { myCurrentIdx = i; myLeftWalk = i - (maxWalk + 1); // todo +- break; } } } }