Выходить из цикла, когда находит occurencia в Java

У меня есть следующая функция, которая ищет из-за всего списка, и когда он находит происшествие, он это возвращает в конце концов.

private static int getIndexRouteInListByRef(List<Route> mArray, String search) {

    int outIndex = -1;
    for (int i = 0; i < mArray.size(); i++) {
        if (mArray.get(i).getRef().equals(search)) {
            outIndex = i;
        }
    }

    return outIndex;

}

Как было бы возможно оптимизировать для того, чтобы, когда он найдет происшествие, он вышел из цикла, и возврати индекс?

1
задан 11.12.2016, 15:18
2 ответа

break; - то, в чем он нуждается, чтобы выходить любой declaraciГіn из цикла как for, while o do-while.

В Вашем случае, будет являться чем-то как это: -

private static int getIndexRouteInListByRef(List<Route> mArray, String search) {
        int index = -1;
        for (int i = 0; i < mArray.size(); i++) {
            if (mArray.get(i).getRef().equals(search)) {
                index = i;
                break;

            }

        }
        return index;
    }

, И если ты думаешь, что это плохая практика, использовать break; я оставляю тебе ответ сообщества на английском, которое очень полезное и яичный белок, который deberГ, - чтобы предоставлять соединение с informaciГіn в espaГ±ol, но ты можешь использовать переводчик того, чтобы быть необходим. https://stackoverflow.com / questions / 18188123/is-it-bad-practice-to-use-break-to-exit-a-loop-in-java

6
ответ дан 24.11.2019, 12:11

В этом случае, ты можешь делать один return внутри цикла. В самом деле, haciГ©ndolo asГ, - даже ты не нуждаешься в том, чтобы определить переменную outIndex:

private static int getIndexRouteInListByRef(List<Route> mArray, String search) {

    for (int i = 0; i < mArray.size(); i++) {
        if (mArray.get(i).getRef().equals(search)) {
            return i;
        }
    }

    return -1;
}
5
ответ дан 24.11.2019, 12:11
  • 1
    Мне нравится много má s твой ответ. Мне не нравится использование break и ты не нуждаешься в добавочных переменных. –  Francisco Romero 12.12.2016, 01:33
  • 2
    @Error404: Очевидно, я tambié n я предпочитаю эту opció n :) Но использовать break; мне кажется opció n верно vá lida tambié n в этом случае. В самом деле, если mé все было incluí do má s có я говорю despué s цикла, opció n return ...; уже не podrí чтобы использовать, так что, в этом случае, favorecerí в использование break; несомненно. –  sstan 12.12.2016, 01:56
  • 3
    Я предпочитаю использовать всегда двойную порцию condició n в for нежели break. Мне кажется много má s contextual. –  Francisco Romero 12.12.2016, 02:02