Excluir Objetos Repetidos na Lista

Galera Tenho uma lista de bean onde não posso mostrar itens repetidos o porém é que somente 4 atributos não podem ser iguais, vou tentar explicar melhor

List<Bean> listaBean = new ArrayList<Bean>();

Bean bean = new Bean();
bean.setAltura(15);
bean.setLargura(20);
bean.setComprimento(5);
bean.setM3(60);
bean.setValor(10);
listaBean.add(bean);

bean = new Bean();
bean.setAltura(15);
bean.setLargura(20);
bean.setComprimento(5);
bean.setM3(60);
bean.setValor();
listaBean.add(bean);

bean = new Bean();
bean.setAltura(50);
bean.setLargura(75);
bean.setComprimento(30);
bean.setM3(100);
bean.setValor(20);
listaBean.add(bean);

Bom observem que o primeiro e o segundo são iguais porém um tem valor e o outro não, preciso mostrar somente no que tem o valor, mais to apanhando muito para isso acontencer

usa Predicate

tanto as libs de collection do google, quanto do apache tem suporte a Predicate

Aqui http://stackoverflow.com/questions/2955043/predicate-in-java tem uns exemplos simples de Predicate.

Nunca usei ele mais o que necessariamente eu deveria usar?

o predicate permite que você execute um teste para cada elemento da sua Collection, o teste tem que retornar verdadeiro ou falso, aí você decide se imprime ou não os valores do objeto que você está testando

olha os exemplos, que você vai entender

Que tal utilizar o proprio Java?

Subcreve o metodo equals() do seu Bean, dizendo que 2 objetos Bean sao iguais se <composicao dos 4 valores que vc quer sao iguais>
Subscreva tb o metodo hashCode().

Pronto, agora basta ao inves de vc adicionar eles em List, vc adicionar em Set. Ex: LinkedHashSet
A interface Set ja cuida de bloquear a adicao de duplicatas (agora que vc disse o que sao 2 Beans iguais)

[quote=fabim]Que tal utilizar o proprio Java?

Subcreve o metodo equals() do seu Bean, dizendo que 2 objetos Bean sao iguais se <composicao dos 4 valores que vc quer sao iguais>
Subscreva tb o metodo hashCode().

Pronto, agora basta ao inves de vc adicionar eles em List, vc adicionar em Set. Ex: LinkedHashSet
A interface Set ja cuida de bloquear a adicao de duplicatas (agora que vc disse o que sao 2 Beans iguais)[/quote]

Diogo, vc já tem a lista dessa forma, e quer imprimir só os que tem valor, ou vc vai criar a lista e não pode ter itens repetidos ?

Mesmo já tendo a lista, a melhor saida é como fabim falou.

Sobrescreve o equals, especificando por quais atributos o seu Bean será igual/diferente de outro. Depois sobrescreve o hascode.

Tendo a lista já, basta fazer isso, por exemplo:

Set conjuntoDeBeans= new HashSet(listaDeBeansJaPronta);

Atts,

[quote=71C4700]Mesmo já tendo a lista, a melhor saida é como fabim falou.

Sobrescreve o equals, especificando por quais atributos o seu Bean será igual/diferente de outro. Depois sobrescreve o hascode.

Tendo a lista já, basta fazer isso, por exemplo:

Set conjuntoDeBeans= new HashSet(listaDeBeansJaPronta);

Atts,[/quote]

E também sobrescreva o hashCode() usando os mesmos campos usados no equals, pois ficara bem mais eficiente.