BT

Lambdaj manipule collections de maneira fácil

por Lucas Souza em 08 Nov 2010 |

Quantas vezes você teve que procurar itens dentro de uma coleção e adicionar em uma lista temporário e gastou pelo menos umas 5 ou 6 linhas de código Java para isto? Código difíceis de ler e manter.

List<Contato> contatosQueMoramEmSaoPaulo = new ArrayList<Contato>();

for(Contato contato : todosContatos) {

    if(contato.getEndereco().getCidade().equals("São Paulo")) {

        contatosQueMoramEmSaoPaulo.add(contato);

    }

}

Lambdaj é uma biblioteca que tornar fácil a resolução deste tipo de manipulação de collections através de código pseudo-funcional e estaticamente tipado. O propósito da biblioteca é resolver estes problemas aplicando algumas características de linguagens funcionais sem perder o tipagem estática do Java. Baseado em um Domain Specific Language(DSL) que facilita muito a criação de código legível.

O código anterior poderia ser resolvido com lambdaj da seguinte maneira:

List<Contato> contatosQueMoramEmSaoPaulo = select(todosContatos, having(on(Contato.class).getEndereco().getCidade(), equalTo("São Paulo"));

LambdaJ permite iteração em collections com o propósito de:

  • filtrar os itens de uma coleção
  • converter cada item de acordo com uma regra específica
  • extrair uma propriedade específica de cada item
  • classificar os items de acordo com o valor de uma dada propriedade
  • agrupar ou indexar os itens de acordo com o valor de uma ou mais propriedades
  • invocar um método de cada item
  • somar os itens ou valores de uma dada propriedade
  • concatenar strings dos itens ou dos valores de uma das propriedades

Você pode obter mais informações sobre o lambdaj no site: http://code.google.com/p/lambdaj. E conferir também análises de sua performance aqui.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Lambdaj usando com Java ? by marcio duran

Você esta sugerindo usar as duas linguagens como proposta de desenvolvimento functional programming ?

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

1 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT