viernes, 22 de junio de 2012

En Grails: HashMap (collectEntries VS Iterator)

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)]
     }
}