Fórum Como ordenadar uma lista de SelectItems #517004
16/04/2015
0
public class Marca implements Serializable, Comparator<Marca>{
private Long idMarca;
private String nome;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((idMarca == null) ? 0 : idMarca.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Marca other = (Marca) obj;
if (idMarca == null) {
if (other.idMarca != null)
return false;
} else if (!idMarca.equals(other.idMarca))
return false;
return true;
}
@Override
public int compare(Marca marca, Marca outra) {
return marca.getNome().compareTo(outra.getNome());
}
No meu bean tenho o código abaixo para a lista.
public class ProdutoBean implements Serializable {
private static final long serialVersionUID = 1L;
private MarcaDAO marcaDao = new MarcaDAO();
private List<SelectItem> marcas = new ArrayList<SelectItem>();
private Long marcaSelecionada;
public List<SelectItem> getMarcas() {
List<Marca> lista = marcaDao.todos();
Collections.sort(lista, marcas);
for(Marca m : lista){
marcas.add(new SelectItem(m.getIdMarca(), m.getNome()));
}
return marcas;
}
}
Miguel Neto
Curtir tópico
+ 0Post mais votado
16/04/2015
No seu caso o correto seria:
Collections.sort(lista, new Marca());
Não é a melhor ideia usar o compare() dentro do seu Bean, o ideal seria criar um comparator personalizado fora do seu bean.
Ronaldo Lanhellas
Gostei + 1
Mais Posts
16/04/2015
Ronaldo Lanhellas
No seu caso o correto seria:
Collections.sort(lista, new Marca());
Não é a melhor ideia usar o compare() dentro do seu Bean, o ideal seria criar um comparator personalizado fora do seu bean.
Gostei + 0
16/04/2015
Ronaldo Lanhellas
No seu caso o correto seria:
Collections.sort(lista, new Marca());
Não é a melhor ideia usar o compare() dentro do seu Bean, o ideal seria criar um comparator personalizado fora do seu bean.
Gostei + 1
16/04/2015
Miguel Neto
No seu caso o correto seria:
Collections.sort(lista, new Marca());
Não é a melhor ideia usar o compare() dentro do seu Bean, o ideal seria criar um comparator personalizado fora do seu bean.
Poderia exemplificar? Sou novo em Java ainda estou aprendendo rsss.
Gostei + 0
16/04/2015
Ronaldo Lanhellas
1 - Uma lista para ser ordenada;
2 - Uma classe que implemente a interfcae Comparator, pois o método sort() usa o método compare() da interface Comparator.
Gostei + 0
16/04/2015
Miguel Neto
1 - Uma lista para ser ordenada;
2 - Uma classe que implemente a interfcae Comparator, pois o método sort() usa o método compare() da interface Comparator.
Não quanto a isso entendi, e funcionou obrigado. Estou dizendo a respeito de você ter dito que não é a melhor ideia usar o compare() dentro do seu Bean, o ideal seria criar um comparator personalizado fora do seu bean.
O comparator eu implementei na minha classe de modelo está errado?
Gostei + 0
16/04/2015
Ronaldo Lanhellas
public class ComparadorMarca implements Comparable{
...
}
Depois você usa o ComparadorMarca dentro do sort().
Gostei + 1
17/04/2015
Miguel Neto
public class ComparadorMarca implements Comparable{
...
}
Depois você usa o ComparadorMarca dentro do sort().
Entendi, é verdade o código ficará até mais legível. Vlw
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)