Предпочтительный способ повторного использования переменной в цикле в Java - PullRequest
2 голосов
/ 18 апреля 2011

Из следующего: какой способ повторного использования вектора section предпочтителен?

Ответы [ 4 ]

9 голосов
/ 18 апреля 2011

Второй способ означает, что переменная section видна вне цикла. Если вы не используете его вне цикла, тогда делать это не нужно, поэтому используйте первый вариант. Что касается производительности, то не должно быть никакой видимой разницы.

8 голосов
/ 18 апреля 2011

Я предпочитаю вторую версию, так как у вас нет неиспользуемой переменной в вашей области действия после завершения цикла.

Однако, как насчет

for (Vector section: parsedOutput) {
    ...
}

?

0 голосов
/ 18 апреля 2011

Интуитивно я бы выбрал второй вариант вашего решения.Но, наконец, это в значительной степени зависит от оптимизатора, он может изменить ваш код в любом случае.Попробуйте скомпилировать свой код, а затем посмотрите на сгенерированные байт-коды, чтобы увидеть, что произошло.Вы можете использовать javap, чтобы увидеть, что сгенерировано, или любой другой доступный декомпилятор.

Наконец, даже в этом случае код может быть оптимизирован другим способом во время выполнения.

0 голосов
/ 18 апреля 2011

Если вы не используете section вне цикла, тогда ваш первый стиль будет предпочтительнее.

...