BT

Novidades O InfoQ vem desenvolvendo uma série de novas funcionalidades para melhorar sua experiência com o site. Confira!

Lambdaj manipule collections de maneira fácil

| por Lucas Souza em 08 nov 2010. Tempo estimado de leitura: 1 minuto |

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.

Avalie esse artigo

Relevância
Estilo/Redação

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

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT