Galera estou fazendo um ArrayList e ele esta vindo com dados duplicados, como faço para o list não duplicar dados?
Grato
wesley oliveira
Galera estou fazendo um ArrayList e ele esta vindo com dados duplicados, como faço para o list não duplicar dados?
Grato
wesley oliveira
coloca o código para que possamos ver o que você esta fazendo
Talvez seja o caso de usar um Set que não permite dados duplicados.
segue o código:
[public HashSet getListCapaBuscar(String criterio, String tipos, String caracteristicas,Integer min, Integer max) throws Exception {
String[] palavras = criterio.split(";");
HashSet hs = new HashSet();
TemasVO temasvo = new TemasVO();
try{
for (int i = 0; i < palavras.length; i++) {
String string = palavras[i];
//List<TemasVO> results = new ArrayList();
rs = stm.executeQuery("SELECT * FROM comercial.view_capa_album_temas WHERE (descricao like '%" + string + "%') and (idvalor Between %"+ min +"% And %"+ max +"% )" +
"and (tipos like '%" + tipos + "%') and (caracteristicas like '%" + caracteristicas + "%') order by temas");
while(rs.next()) {
temasvo.setTemas(rs.getString("temas"));
temasvo.setDescricao(rs.getString("descricao"));
temasvo.setFaixapreco(rs.getString("faixapreco"));
temasvo.setImagem_local(rs.getString("imagem_local"));
temasvo.setTipos(rs.getString("tipos"));
temasvo.setCaracteristicas(rs.getString("caracteristicas"));
temasvo.setBriefing(rs.getString("briefing"));
temasvo.setIdvalor(rs.getString("idvalor"));
temasvo.setStatus(rs.getString("status"));
hs.add(temasvo);
}
}
}catch(SQLException e){
e.printStackTrace();
}
return hs;
}]
Falou tudo !
Poderiam passar uma extrutura com o Set?
Como vcs podem ver estou iniciando em java.
grato
wesley oliveira
Oi,
Se você não precisa de uma Chave/Valor, você poderá utilizar um LinkedHashSet:
LinkedHashSet
lo_hash_set = new LinkedHashSet();
lo_hash_set.add("001");
lo_hash_set.add("001");
lo_hash_set.add("002");
lo_hash_set.add("003");
lo_hash_set.add("005");
lo_hash_set.add("003");
for (int i = 0; i < lo_hash_set.size(); i++) {
System.out.println(lo_hash_set.toArray()[i]);
}
001
002
003
005
Tchauzin!
List
List<Cliente> list = new ArrayList<Cliente>();
list.add(clienteQualquer);
list.add(clienteQualquer);
list.add(outroCliente);
list.add(outroCliente);
Nesse caso temos 4 objetos dentro do list.
Set
Set<Cliente> set = new HashSet<Cliente>();
set.add(clienteQualquer);
set.add(clienteQualquer);
set.add(outroCliente);
set.add(outroCliente);
Nesse caso temos apenas 2.
A diferença é que não existe um método get(int idx) no Set. Voce precisa iterar sobre a coleção.
Mas se voce usa um for-each o código continua funcinando pois Set também implementa Iterable.
Ou usa a solução da Lina que postou enquanto eu escrevia isso.