BT
x Por favor preencha a pesquisa do InfoQ !

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.

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
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

Percebemos que você está utilizando um bloqueador de propagandas

Nós entendemos porquê utilizar um bloqueador de propagandas. No entanto, nós precisamos da sua ajuda para manter o InfoQ gratuito. O InfoQ não compartilhará seus dados com nenhum terceiro sem que você autorize. Procuramos trabalhar com anúncios de empresas e produtos que sejam relevantes para nossos leitores. Por favor, considere adicionar o InfoQ como uma exceção no seu bloqueador de propagandas.