¿Alguien me puede indicar un ejemplo de cómo usar un Map
en Groovy que tiene un String
como clave y un List
como valor?Mapa con clave como cadena y valor como lista en Groovy
20
A
Respuesta
27
maravilloso acepta casi toda la sintaxis de Java, por lo que hay un espectro de opciones, como se ilustra a continuación:
// Java syntax
Map<String,List> map1 = new HashMap<String,List>();
List list1 = new ArrayList();
list1.add("hello");
map1.put("abc", list1);
assert map1.get("abc") == list1;
// slightly less Java-esque
def map2 = new HashMap<String,List>()
def list2 = new ArrayList()
list2.add("hello")
map2.put("abc", list1)
assert map2.get("abc") == list2
// typical Groovy
def map3 = [:]
def list3 = []
list3 << "hello"
map3.'abc'= list1
assert map3.'abc' == list3
13
def map = [:]
map["stringKey"] = [1, 2, 3, 4]
map["anotherKey"] = [55, 66, 77]
assert map["anotherKey"] == [55, 66, 77]
5
Una pequeña pieza adicional que es muy útil cuando se trata de mapas/lista como el valor en un mapa es el método withDefault(Closure)
en mapas en groovy. En vez de hacer el siguiente código:
Map m = [:]
for(object in listOfObjects)
{
if(m.containsKey(object.myKey))
{
m.get(object.myKey).add(object.myValue)
}
else
{
m.put(object.myKey, [object.myValue]
}
}
Usted puede hacer lo siguiente:
Map m = [:].withDefault{key -> return []}
for(object in listOfObjects)
{
List valueList = m.get(object.myKey)
m.put(object.myKey, valueList)
}
Con predeterminado puede ser utilizado para otras cosas también, pero me parece que este caso de uso más común para mí.
API: http://www.groovy-lang.org/gdk.html
Mapa -> withDefault (Cierre)
1
que no es necesario declarar Mapa maravilloso reconoce internamente
def personDetails = [firstName:'John', lastName:'Doe', fullName:'John Doe']
// print the values..
println "First Name: ${personDetails.firstName}"
println "Last Name: ${personDetails.lastName}"
Cuestiones relacionadas
- 1. lista como valor del mapa en griales
- 2. operador de mapa [] y bool como valor
- 3. cómo desestructurar un mapa como clave y valor
- 4. referencia como clave en std :: mapa
- 5. value_type para ver un mapa con punteros como clave
- 6. Convertir cadena o cadena [] a la lista con Groovy
- 7. vinculando al valor en el diccionario con enum como clave
- 8. tipo de clase como clave en el mapa de Scala
- 9. Pasar el valor dinámico como una clave a Mapa en JSF 2.0
- 10. Usar pares clave-valor como parámetros
- 11. Insertar par como valor del mapa
- 12. LINQ - Convertir Lista de diccionario con Valor como lista
- 13. Archivo de propiedades con una lista como el valor de una clave individual
- 14. Serializar un mapa que no tiene una cadena como clave con lift-json
- 15. Cómo utilizar NSString como clave en Objective-C++ std :: mapa
- 16. Usar el par como clave en un mapa (C++/STL)
- 17. C# de lista como diccionario clave
- 18. Acceda al valor del mapa en EL usando una variable como clave
- 19. GLM :: ivec2 como clave en el mapa desordenada
- 20. explotar dos elemento-lista en la matriz como clave => valor
- 21. cómo iterar una lista como Lista <Mapa <Cadena, Objeto >>
- 22. atajo para crear un mapa de una lista en groovy?
- 23. Mapa Enum como Int con Fluidez NHibernate y NHibernate 3
- 24. Mostrar mapa como OpenStreetMap
- 25. ¿Cómo comprobar si una clave en un mapa comienza con un valor de cadena dada
- 26. matriz de caracteres como un valor en el mapa C++
- 27. Hacer diccionario Web API serializar con el valor clave como datos utilizando la clave de atributo
- 28. Cómo usar dos números como una clave de mapa
- 29. Tipos personalizados como clave para un mapa - C++
- 30. una matriz: entradas impares como la clave, incluso entradas como VALOR
también: ' map.stringKey = [1, 2, 3, 4]; map.anotherKey = [55, 66, 77] ' – Will