Eu tenho uma List de Objetos, e gostaria de saber como q faz a ordenação desta lista por determinado atributo de cada objeto. Eu estou usando a interface comparable deste jeito:
Consegui achar aqui no forúm várias formas de conseguir fazer essa comparação, porém somente dessa forma, ex:
Tipo tenho um array de objetos da classe cliente se pedir para ordenar por nome ,funciona corretamente.
Mas eu gostaria de saber se é possível fazer o seguinte, ter um array de objetos da classes pedido, que tem o atributo que é do tipo da classe cliente, e aí ordernar os pedidos pelo nome dos clientes.
Sim, é possível. É só fazer um Comparator que compare pedidos pelo nome dos clientes. Os links já apresentados nesse tópico explicam como.
Mas deve ser algo simples assim:
public class PedidosPorNome implements Comparator<Pedido> {
public int compare(Pedido p1, Pedido p2) {
return p1.getCliente().getNome().compareTo(p2.getCliente().getNome());
}
}
Aí é só usar:
Collections.sort(pedidos,newPedidosPorNome());
P
passoca
Sim, é possível. É só fazer um Comparator que compare pedidos pelo nome dos clientes. Os links já apresentados nesse tópico explicam como.
Mas deve ser algo simples assim:
public class PedidosPorNome implements Comparator<Pedido> {
public int compare(Pedido p1, Pedido p2) {
return p1.getCliente().getNome().compareTo(p2.getCliente().getNome());
}
}