dictionary groovy

dictionary - groovy map collect



Loop a través del mapa en Groovy? (4)

Al usar el bucle for, el valor de s es un elemento Map.Entry, lo que significa que puede obtener la clave de s.key y el valor de s.value

Tengo una tarea muy simple que estoy tratando de hacer en Groovy pero parece que no puedo hacer que funcione. Solo intento recorrer un objeto de mapa en groovy e imprimir la clave y el valor, pero este código no funciona.

// A simple map def map = [ iPhone : ''iWebOS'', Android: ''2.3.3'', Nokia : ''Symbian'', Windows: ''WM8'' ] // Print the values for (s in map) { println s + ": " + map[s] }

Estoy tratando de que la salida se vea así:

iPhone: iWebOS Android: 2.3.3 Nokia: Symbian Windows: WM8

¿Podría alguien dar más detalles sobre cómo hacer esto?


Alternativamente, puede usar un ciclo for como se muestra en Groovy Docs :

def map = [''a'':1, ''b'':2, ''c'':3] for ( e in map ) { print "key = ${e.key}, value = ${e.value}" } /* Result: key = a, value = 1 key = b, value = 2 key = c, value = 3 */

Una de las ventajas de usar un bucle for en lugar de each cierre es una depuración más sencilla, ya que no se puede alcanzar un punto de quiebre dentro de each cierre (cuando se usa Netbeans).


Muy simple con un cierre:

def map = [ ''iPhone'':''iWebOS'', ''Android'':''2.3.3'', ''Nokia'':''Symbian'', ''Windows'':''WM8'' ] map.each{ k, v -> println "${k}:${v}" }


Otra opción:

def map = [''a'':1, ''b'':2, ''c'':3] map.each{ println it.key +" "+ it.value }