InfoQ

InfoQ

Notícias

Meus Favoritos

Faça oLogin ou Cadastre-se para ativar o recurso de favoritos por tempo ilimitado.

O conteúdo foi adicionado aos favoritos!

Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.

Lambdaj manipule collections de maneira fácil

Postado por Lucas Souza em 08 Nov 2010

Seções
Processos e Práticas,
Arquitetura e Design,
Desenvolvimento
Tópicos
Análise de Código ,
Java ,
Ferramentas ,
Depuração ,
Linguagens ,
Profilers ,
Programação ,
Agile ,
Design

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.

Lambdaj usando com Java ? por marcio duran Enviado
  1. Voltar ao topo

    Lambdaj usando com Java ?

    por marcio duran

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