Curso de Grails & Groovy

Groovy - Manipulação de Listas

Declaração de listas

//Como em Java com definição explícita de tipo
List nomes = new ArrayList()
ArrayList numeros = new ArrayList()

//Ou
List nomes = []
ArrayList numeros = []

//Ou ainda
List nomes = ["Jão","José","Maria"]
ArrayList numeros = [1,2,3,4,5,6]

//Ou
def nomes = ["Jão","José","Maria"]
def numeros = [1,2,3,4,5,6]

//Tem também
def numeros = [1..10]
numeros.each{
    println it 
    //it é uma palavra reservada que 
    //faz referência a cada elemento da lista 
    //(o it serve para outras coisas também...)
}

Manipulação de Listas

Percorrendo uma lista
def nomes = ["Jão","José","Maria"]
nomes.each{ nome ->
	println nome
}
Percorrendo uma lista com um índice
def nomes = ["Jão","José","Maria"]
nomes.eachWithIndex{ nome, i ->
    println "${i+1}º ${nome}"
}
Adicionando um elemento na lista
def nomes = ["Jão","José","Maria"]
nomes += "Pedro"
println nomes
Adicionando um elemento em uma determinada posição
def nomes = ["Jão","José","Maria"]
nomes.add(1,"Pedro")
println nomes
Removendo um elemento da lista
def nomes = ["Jão","José","Maria","Pedro"]
nomes -= "Pedro"
println nomes

//Ou
def nomes = ["Jão","José","Maria","Pedro"]
nomes.remove("Pedro")
println nomes
Removendo um elemento de uma determinada posição da lista
def nomes = ["Jão","José","Maria","Pedro"]
nomes.remove(1)
println nomes
Adicionando vários elementos na lista
def nomes = ["Jão","José","Maria"]
nomes += ["Pedro","Tiago","Tomé"]
println nomes
Removendo vários elementos da lista
def nomes = ["Jão","José","Maria","Pedro","Tiago","Tomé"]
nomes -= ["Pedro","Tiago","Tomé"]
println nomes

Operações com listas

Inverte os elementos da lista
def nomes = ["Jão","José","Maria"]
println nomes.reverse()
Concatenação de listas
def lista1 = [1,2,3,4]
def lista2 = [10,20,30]
def lista3 = lista1 + lista2
println lista3
Transformando várias listas em uma só
def numeros = [1,2,3,[8,9,0],[10,20]]
println numeros.flatten()
Ordenando crescentemente uma lista
def numeros = [1,5,7,8,3,2,5,8,9]
println numeros.sort{it}

//Com String
def nomes = ["Jão","José","Maria","Abraão"]
println nomes.sort{it}
Ordenando decrescentemente uma lista
def numeros = [1,5,7,8,3,2,5,8,9]
println numeros.sort{ a , b -> b <=> a }

//Com String
def nomes = ["Jão","José","Maria","Abraão"]
println nomes.sort{ a , b -> b <=> a }
Buscando um elemento
def numeros = [1,5,7,8,3,2,5,8,9]
println numeros.contains(8)

//Ou
def numeros = [1,5,7,8,3,2,5,8,9]
println numeros.find{it == 8}
Buscando elementos a partir de uma condição
def numeros = [1,5,7,8,3,2,5,8,9]
println numeros.findAll{it > 4}
Eliminando elementos duplicados
def numeros = [1,5,7,8,3,2,5,8,9]
println numeros.unique()
Um monte de operações de uma vez
def numeros = [1,5,7,8,3,2,5,8,9]
println numeros.findAll{it > 4}.sort{it}.unique()
Voltar ao ndice