1
resposta

olá, não estou conseguindo usar o método Integer.compare(int x , int y)

Estava tentando fazer o mão na massa de ordenação de lista e não consegui usar o seguinte código

package br.com.bytebank.projeto.banco.testes.util;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

import br.com.bytebank.projeto.banco.modelo.Conta;
import br.com.bytebank.projeto.banco.modelo.ContaCorrente;
import br.com.bytebank.projeto.banco.modelo.ContaPoupanca;

public class Teste {

    public static void main(String[] args) {


        Conta cc1 = new ContaCorrente(22, 33);
        cc1.deposita(333.0);

        Conta cc2 = new ContaPoupanca(22, 44);
        cc2.deposita(444.0);

        Conta cc3 = new ContaCorrente(22, 11);
        cc3.deposita(111.0);

        Conta cc4 = new ContaPoupanca(22, 22);
        cc4.deposita(222.0);

        List<Conta> lista = new ArrayList<>();
        lista.add(cc1);
        lista.add(cc2);
        lista.add(cc3);
        lista.add(cc4);



}


}

class NumeroDaContaComparator implements Comparator<Conta> {

    @Override
    public int compare(Conta c1, Conta c2) {
        return Integer.compare(c1.getNumero(), c2.getNumero());
    }



}

O método Integer.compre(c1.getNumero(), c2.getNumero()); dava erro de compilação que dizia que devia ser do tipo Double Double e quando eu colocava Double.compare(c1.getNumero(),c2.getNumero()); voltava a funcionar. Alguém poderia me explicar o que aconteceu ? porque o getNumero é do tipo int e não double

1 resposta

Bom, vc ta passando double no metodo deposita, tenta fazer algo como abaixo. como tah o codigo da classe Conta?

Conta cc1 = new ContaCorrente(22, 33);
cc1.deposita(333);