Вы можете перебирать любую коллекцию, которая является Итерируемой, а также массивы.И разница в производительности - это не то, о чем вам следует беспокоиться.
Читаемость важна.
Prefer this
for (String s : listofStrings)
{
...
}
over
for (Iterator<String> iter = listofStrings.iterator(); iter.hasNext(); )
{
String s = iter.next();
...
}
Обратите внимание, что если вам нужно удалить элементы какВы повторяете, вам нужно использовать Iterator
.
Например,
List<String> list = getMyListofStrings();
for (Iterator<String> iter = list.iterator(); iter.hasNext(); )
{
String s = iter.next();
if (someCondition) {
iter.remove();
}
}
Вы не можете использовать for(String s : myList)
для удаления элемента в списке.
Также обратите вниманиечто при итерации по массиву foreach (или улучшенный для) может использоваться только для получения элементов, вы не можете изменять элементы в массиве.
Для получения дополнительной информации см. this .