tenho uma tabela no banco de dados, chamada pedidos, so que ela repete o codigo do pedido, ai para eu saber quais sao os pedidos dessa tabela sem repetir, eu faco um SELECT DISTINCT CODIGO FROM TB_PEDIDOS.
Gostaria de saber como eu posso fazer isso em uma List , tipo para fazer essa operacao no java e nao no banco de dados\
Você precisa de um LinkedHashSet, e de definir corretamente o método hashCode em sua classe. Exemplo simplificado (adicione os setters e getters):
classPedido{intcodigo;Stringdescricao;publicinthashCode(){inthash=0;hash=hash*37+codigo;hash=hash*37+descricao.hashCode();returnhash;}}...Set<Pedido>pedidos=newLinkedHashSet<Pedido>();pedidos.add(newPedido(123,"Papel higiênico"));pedidos.add(newPedido(234,"Lança-perfume"));pedidos.add(newPedido(234,"Lança-perfume"));// Para listar os pedidosfor(Pedidopedido:pedidos){System.out.println(pedido.getCodigo()+"->"+pedido.getDescricao());}}
M
mvlbarcelos
Vou tentar aqui
Valew
fabim
e o equals(), precisa nao?
cassio
Neste caso eu ainda prefiro usar o distinct, afinal de contas porque trazer do banco trocentos registros que não serão usados para nada?
T
thingol
Hum, tinha esquecido do equals - se você define hashCode, deve definir equals, e vice-versa.
sergiotaborda
Existe uma implementação mais simples para hashcode, já que "descrição" não é um identifiador