Modifier une map/liste dans une boucle
Bonjour à tous,
Mon titre n'est peut être pas 100% clair mais j'avais du mal à l'exprimer.
J'ai une map, pour laquelle la valeur est une liste.
Je me retrouve donc avec quelque chose du style :
myMap[obj1] = [obj1-1, obj1-2]
myMap[obj2] = [obj2-1]
myMap[obj3] = [obj3-1, obj3-2, obj3-3]
(clé = groupe / valeur = liste de users)
Enfin j'aimerai, mais ça ne fonctionne pas quand j'alimente la liste, et je ne sais pas pourquoi.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
def groupsMap = [:]
for (it in sql.rows(groupsQuery)) {
def group = [:]
if (it.parent_id != group?.id) {
// new group to process
group.put("id", it.parent_id)
group.put("name", it.parent_name)
groupsMap.put(group, [])
}
// create the child
def child = [:]
child.put("id", it.child_id)
child.put("name", it.child_name)
child.put("type", it.child_type)
// get current child list and add new child
tempChildList = groupsMap.get(group);
if (tempChildList.size() > 0) {
println 'tempChildList is not empty'
}
tempChildList.add(child);
println '..... group ' + group.get("id") + ' size ' + tempChildList.size()
groupsMap.put(group, tempChildList)
} |
En résultat je ne vois jamais "tempChildList is not empty"
Pourtant j'ai au moins 1 groupe pour lequel j'ajoute 3 users. Voici un extrait de la sortie sur la console :
Code:
1 2 3
| ..... group 14659717 size 1
..... group 14659717 size 1
..... group 14659717 size 1 |
Est-ce que quelqu'un vois où est mon erreur ?
Merci pour votre aide.
PS: Je suis débutant en Groovy, et j'utilise la version 1.8.3