In Java 5 and above you have the foreach loop, which works magically on anything that implements Iterable
:
for (Object o : list) {
doStuff(o);
}
However, Enumerable
still does not implement Iterable
, meaning that to iterate over an Enumeration
you must do the following:
for(; e.hasMoreElements() ;) {
doStuff(e.nextElement());
}
Does anyone know if there is a reason why Enumeration
still does not implement Iterable
?
Edit: As a clarification, I'm not talking about the language concept of an enum, I'm talking a Java-specific class in the Java API called 'Enumeration'.
As an easy and clean way of using an Enumeration with the enhanced for loop, convert to an ArrayList with java.util.Collections.list.
for (TableColumn col : Collections.list(columnModel.getColumns()) {
(javax.swing.table.TableColumnModel.getColumns returns Enumeration.)
Note, this may be very slightly less efficient.