Duvida sobre collections.sort

5 respostas
0

Boa Tarde Pessoal

alguem pode me dizer o que eu coloco no comparator?
mande um exemplo por favor!

public static void main(String[] args) throws IOException 
	{	
		ArrayList l = new ArrayList();
		ContaCorrente c1 = new ContaCorrente();
		c1.deposita(100);
		ContaCorrente c2 = new ContaCorrente();
		c2.deposita(300);
		ContaCorrente c3 = new ContaCorrente();
		c3.deposita(200);
		
		l.add(c2);
		l.add(c3);
		l.add(c1);
		
		System.out.println(l);
		
		Collections.sort(l, comparator);
		System.out.println(l);

5 Respostas

T

a) Poste a definição de sua classe ContaCorrente.
b) Qual é a ordem em que as contas devem aparecer? Por número, por nome do correntista, por o quê afinal?

0

Esta aí a classe thingol

public class ContaCorrente extends Conta implements CalculaTributos, Comparable<ContaCorrente>
{
    public void atualiza() 
    {                           
        this.saldo *= 0.08;
	}

	public double calculaTributos() 
	{
		return this.saldo * 0.1;
	}
	
	public int compareTo(ContaCorrente c)
	{
		if (this.saldo < c.saldo)
		{
			return -1;
		}
		if (this.saldo > c.saldo)
		{
			return 1;
		}
		return 0;
	}
}
T

Se a classe ContaCorrente já implementa Comparable e se você aceitar que elas sejam ordenadas pelo saldo, não é preciso criar um Comparator. Mas é isso mesmo que você quer?

0

é que eu não estou sabendo fazer como eu quero(1° post) então criei o metodo comparable na classe Conta Corrente.

Eu esqueci de apagar quando enviei o post

gostaria de saber como faço do outro jeito, ordenando pelo saldo

T
Collections.sort (l, new Comparator<ContaCorrente>() {
    public int compare (ContaCorrente c1, ContaCorrente c2) {
        if (c1.getSaldo() < c2.getSaldo()) return -1;
        else if (c1.getSaldo() > c2.getSaldo()) return +1;
        else return 0;
    }
});
Criado 27 de outubro de 2008
Ultima resposta 27 de out. de 2008
Respostas 5
Participantes 2