У меня есть следующее для цикла:
for(String s : someString.split("\\s+")){ //do something }
Выполняет ли java метод split () каждый раз, когда цикл повторяется, или он делает это только один раз и сохраняет временный массив для повторения?
Он делает это только один раз, использует этот массив и проходит через него.
Редактировать: из Mat Это ссылка
Сохраняет массив во временной переменной перед использованием.
Нет, разбиение выполняется один раз для строки, и после этого цикл повторяется по результату
Метод split вызывается только один раз. Подумайте о структуре (также известной как «для каждого») следующим образом:
Более подробную информацию можно получить здесь: http://www.leepoint.net/notes-java/flow/loops/foreach.html
P.S .: Это работает с минимумом Java 5.