Los dos métodos hacen lo mismo; retornan un map (clave, valor)
def static getUsersGroups(){
def groups;
User obj;
HashMap mapGrp = new HashMap();
groups=User.findAll("FROM User Where userType='G'");
Iterator<User> gr = groups.iterator();
while(gr.hasNext()){
obj=gr.next();
mapGrp.put(obj.id, obj.username);
}
return mapGrp;
}
Mucho más fácil (puramente en lenguaje groovy)
def static getUsersGroups(){
def groups=User.findAllByUserType("G");
groups.collectEntries {
[(it.id): (it.username)]
}
}