Curso de Grails & Groovy

Groovy - Manipulação de Mapas

Declaração de mapas

//Como em Java com definição explícita de tipo
HashMap mapa = new HashMap()
HashMap estados = new HashMap()

//Ou
HashMap mapa = [:]
HashMap estados = [:]

//Ou ainda
HashMap mapa = [1:"Nome",2:"Sexo",3:"Idade"]
HashMap estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]

//Ou
def mapa = [1:"Nome",2:"Sexo",3:"Idade"]
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]

Manipulação de Mapas

Percorrendo um mapa
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
estados.each{ sigla, nome ->
	println sigla + " - " + nome
}
Selecionando um determinado item pela chave
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados.get("SP")

//Ou
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados["SP"]

//Ou ainda
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados.SP
Adicionando um elemento no mapa
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
estados += ["ES": "Espírito Santo"]
println estados

def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
estados.putAt("ES","Espírito Santo")
println estados
Removendo um elemento do mapa
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
estados.remove("SP")
println estados
Adicionando vários elementos no mapa
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
estados += ["ES":"Espírito Santo","PE":"Pernambuco"]
println estados
Extraindo as chaves do mapa
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados.keySet()

//Ou
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados.collect{it.key}

Operações com mapas

Verificando se uma chave existe
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados.containsKey("SP")
Verificando se um valor existe
def estados = ["SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados.containsValue("São Paulo")
Ordenando crescentemente um mapa pelos valores
def estados = ["XY":"Extra","SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados.sort{it.value}
Ordenando crescentemente um mapa pelas chaves
def estados = ["XY":"Extra","SP":"São Paulo","RJ":"Rio de Janeiro","MG":"Minas Gerais"]
println estados.sort{it.key}
Voltar ao ndice