For Map, you can do:
for (Map.Entry<K,V> e : map.entrySet()) { ... }
and you're already there.
On 12/19/2018 9:54 AM, Alan Snyder wrote:
Has any consideration been given to supporting iterators that provide more than
one iteration variable in the enhanced for loop?
Obvious uses would be maps (keys and values) and lists (indexes and values).
I have in mind keeping the syntactic sugar approach by using one or more
extensions of the Iterator/Iterable interfaces, such as, for example:
interface Iterator2<E1,E2> extends Iterator<E1> {
E2 get2();
}
with the extra methods providing the values for the extra variables (associated
with the previous call to next).
Extending interfaces is not required, but it makes the trailing variables
optional, which might be useful. For example, the same iterator could provide
values or values and keys.
The fact that this approach only works for a fixed set of numbers of variables
does not bother me unduly.
Alan