Descubra os novos métodos do Groovy para ordenação e remoção de duplicações

Professortocat_v2

No Groovy, nós podemos usar os métodos sort() e unique() para ordenar ou remover duplicações de nossas coleções. Esses métodos alteram a estrutura das próprias coleções utilizadas. Porém esses são os efeitos colaterais que queremos evitar. No entanto, os métodos sort e unique foram alterados para receber um parâmetro boleano para indicar se a coleção deve ser alterada ou se nós teremos uma nova coleção como resultado, deixando a coleção atual em seu estado original.

Desde a versão 2.4 do Groovy nós temos dois novos métodos que retornam por default uma nova coleção: toSorted e toUnique.

No exemplo abaixo, podemos ver esses métodos em ação:

Curiosidades:

Acabamos de ver a lista de usuários sendo criada com o asImmutable(), que transforma o objeto em outro imutável, ou seja, se tentarmos executar apenas um sort() ou um unique() receberemos uma exceção de método não suportado. Pois, como descrito no início dos post, estes métodos por default alterão o estado do objetos e isso não é possível nos imutáveis.

Se em nossa aplicação temos estruturas que não são alteradas no decorrer de seu ciclo de vida, é aconcelhavel que utilizemos estas estruturas como imutáveis para melhoria de performace.

Considerações

Estamos falando de casos em que estamos lidando com listas externas, que por algum motivo de performace ou segurança não podem ser alteradas ou ja vir ordenadas.

Em situações onde a nossa estrutura de dados tenha que estar sempre ordenada e sem repetições, é aconcelhado já cria-la como TreeSet(). TreeSet: É uma coleção que além de não permitir repetição graças ao Set, ela indiretamente implementa o SortedSet, ou seja, manterá a classe sempre ordenada.

Gostaria de agradecer mais uma vez ao Dev Hubert Klein Ikkink que tem contribuído bastante com a comunidade groovy com seus exemplos no Groovy Goodness.

Fonte original

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: