Единственное место, где я мог бы использовать его, это то, где вам нужно трактовать первый элемент последовательности иначе, чем остальные. Это делает цикл foreach неловким, но цикл while работает хорошо:
Iterator<String> iterator = foo.iterator();
// Handle the first item specially
if (!iterator.hasNext()) {
throw new SomeException("foo shouldn't be empty");
}
SomeResult result = new SomeResult(iterator.next());
// Now deal with the rest
while (iterator.hasNext())
{
String item = iterator.next();
result.addItem(item);
}
Также я использую цикл while
в качестве одного из немногих мест, где я также включаю назначение в условие:
String line;
while ((line = reader.readLine()) != null)
{
// Handle the line
}
или InputStream
:
int bytesRead;
while ((bytesRead = input.read(buffer)) != -1)
{
// Handle the buffer
}