080808
Outubro 27, 2008, 12:39pm
#1
Boa Tarde Pessoal
alguem pode me dizer o que eu coloco no comparator?
mande um exemplo por favor!
[code]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);[/code]
thingol
Outubro 27, 2008, 1:08pm
#2
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?
080808
Outubro 27, 2008, 1:11pm
#3
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;
}
}
thingol
Outubro 27, 2008, 1:19pm
#4
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?
080808
Outubro 27, 2008, 1:22pm
#5
é 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
thingol
Outubro 27, 2008, 1:25pm
#6
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;
}
});