Код 1
String ccMailAddresses="[email protected],[email protected]";
String ccMailAddressArray[]=ccMailAddresses.split(",");
if(ccMailAddressArray!=null){
for (int index = 0; index < ccMailAddressArray.length; index++) {
System.out.println(ccMailAddressArray[index]);
}
}
В этом примере вы делаете ненужный чек против ccMailAddressArray
потому split()
никогда не вернется null
. Цикл for здесь предоставляет вам index
. Это может быть полезно иногда, например, если у вас есть массив color
, который имеет цвет, сохраненный для каждого элемента. Затем вы можете использовать color[index]
, чтобы выбрать цвет для каждого элемента и нарисовать его где-нибудь. Пожалуйста, теперь, что это немного сложнее, чем просто перебирать все предметы. Таким образом, вы используете эту версию всякий раз, когда вам нужен index
.
Код 2
String ccMailAddresses="[email protected],xy";
for (String ccMailAddress : ccMailAddresses.split(",")){
System.out.println(ccMailAddress);
}
В этом примере вы по существу то же самое. Цикл for-each, который вы используете здесь, делает то же самое для вас.Единственная разница в том, что здесь у вас нет index
. Это немного короче и проще, что упрощает чтение.
So: Используйте для каждого (код 2), когда можете, потому что немного проще понять, что вы донгом. Если вы используете индекс, основанный на цикле (код 1), я предполагаю, что вы хотите сделать что-то с index
, что также подразумевает, что могут быть задействованы некоторые более сложные вещи.
один для цикла, а другой - foreach/усиление цикла (используется для перемещения, когда нет необходимости в индексе). –
Код 1 является бессмысленным, потому что условие 'if' всегда верно. Лучше всего не писать случайные тавтологические утверждения 'if'. –
На самом деле нет разницы. «Код 1» делает ненужную проверку, если массив равен «null». Я думаю, что 'split()' возвращает только пустой массив, но никогда 'null'. – displayname