or map.forEach((key, value) -> { ... }); Rémi
----- Mail original ----- > De: "Brian Goetz" <brian.go...@oracle.com> > À: "Alan Snyder" <fishgar...@cbfiddle.com>, "core-libs-dev" > <core-libs-dev@openjdk.java.net> > Envoyé: Jeudi 20 Décembre 2018 23:50:15 > Objet: Re: enhanced for loop with multiple iteration variables > 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