Astuce Java #5 : for-each sur une map

Petite astuce pour iterer sur une Map dans une boucle for-each, en attendant Java 7.

Il s'agit de considérer une Map comme une collection de Map.Entry :
Map<Integer, String> myMap = new HashMap<Integer, String>();
// ...
for (Map.Entry entry : myMap.entrySet()) {
    System.out.println(entry.getKey() + "=" + entry.getValue());
}


Via A better way to iterate java maps.

Permalink  |  Commentaires (0)

Java 7 : Amélioration de la boucle for-each

Stephen Colebourne viens de publier une proposition concernant une amélioration de la boucle for-each en Java.

Petit historique :
La boucle for-each à été introduite en Java 5. Cette nouvelle boucle permettait (et permet toujours) d'itérer très facilement sur un tableau, une Collection ou un Iterator.
Collection<String> strings;
[...]
for (String s : strings) {
    System.out.println(s);
}

L'amélioration de celle-ci devrait permettre d'itérer sur une Map de la même manière que sur une Collection ou un tableau.

La nouvelle syntaxe qui permettrait ceci devrait ressembler à ça :
Map<String,Object> objects;
[...]
for (String key, Object o : objects) {
    System.out.println(k + "=" + o);
}

D'où une grande simplification dans le parcours des Map.

En plus de ça, Stephen ne s'est pas arrêté là. Il a déjà mis à disposition une version de javac modifiée, basée sur Kijaro, permettant d'utiliser cette nouvelle boucle.

Permalink  |  Commentaires (0)