Oi pessoal! Estou com uma dúvida e é meio urgente… pra um trabalho que preciso entregar amanhã!! =//
Preciso ordenar meu arraylist pra depois imprimir todo o seu conteúdo (Nome do produto, quantidade do produto e preço do produto). Mas não sei como ordená-lo… já tentei usar sort, mas acho que na linha a qual usei, meu código está errado. Meu arraylist é o seguinte:
Criei uma classe Produto assim:
[code]public class Produto {
private String nome;
private int quantidade;
private int preco;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getPreco() {
return preco;
}
public void setPreco(int preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
}[/code]
Aí eu pego os nomes dos produtos do meu array loja e ordeno em ordem alfabética. Depois imprimo. A parte de imprimir eu consigo, mas o problema maior é essa ordenação aí
Como fazer? Me ajudem, por favor. Preciso que me digam o código, a única linha que preciso escrever ali pra ordenar …
Agradeço desde já!
se vc quer ordenar por Produto precisa dizer como o java deve fazer isso.
uma maneira é implementar a interface Compareble e sobrescrever o metodo compareTo. la vc diz quais atributod vc quer que sejam levados em consideração n hora de comparar seus objetos.
Se vc der uma pesquisada no forum vai achar varios exemplos de como fazer isso.
ou de uma olhada aqui
Oi Rulldra, basta usar o método sort da Classe Collection. Mas para isso você vai ter que implementar o método compareTo. Ficaria assim no caso de ordenar pelo preço:
public class Produto implements Comparable{
// …
// …
public int compareTo(Produto produto) {
if(this.preco < produto.preco) {
return -1;
}
if(this.preco > produto.preco) {
return 1;
}
return 0;
}
}
Você pode definir também a ordem de classificação somente trocando de lugar o “-1” e o “1”.
Depois é só chamar o método antes de imprimir:
Collections.sort(loja);
Só aproveitando o tópico.
Se você tem dúviadas sobre Collection, aconselho você estudar todas elas antes de sair usando. Muitas vezes, você pode estar “escolhendo” a Collection errada para determinado requisito.
Acredite se quiser, já fiz isso… mas dá erro, pq não dá pra comparar strings assim… e outra coisa: essa parte do código eu coloco na classe Produto ou na visual class Loja? (Se for na Produto, então o que eu coloco na Loja? E se for na Loja, o que eu coloco na Produto?)