Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no Ex. 3 da Aula 5 - Collections framework

Por favor, poderia me ajudar nas seguintes dúvidas:

1) Não entendi "outra" para o método.

@Override
    public int compareTo(ContaPoupanca outra){
        return (int) (this.getSaldo() - outra.getSaldo());
    }

2) Poderia explicar como funciona este for.

for (ContaPoupanca contaPoupanca : contas) {
            System.out.println(contaPoupanca.getSaldo());
        }

3) em http://docs.oracle.com/javase/8/docs/api/ em java.util e na interface Collection não encontrei sort.

Obrigado!!!

2 respostas
solução!

Vamos lá...

1)

compareTo(ContaPoupanca outra)

este método esta dentro da classe Conta, sendo chamada por objeto que já esta instanciado como sendo uma Conta. Quando ocorre a chamada e vamos para o método acessamos os atributos da classe invocadora do método, pelo this e a outra, nome do parâmetro é outra conta, outro objeto do tipo Conta, que estamos passando para ser comparado, por exemplo:

Conta contaOriginal = new ContaPoupanca();
//set do saldo

Conta contaSecundaria = new ContaPoupanca();
//set do saldo

//chamando o método
contaOriginal.compareTo(contaSecundaria);

Só uma dia: o compareTo não costuma fazer este tipo de operação que você fez....

2)O for: este for que você esta utilizado é um foreach, ou seja, para cada atributo de um tipo, contido em uma Collections, mais explícito, com o main:

//Tenho um array de string, que é o args
public static void main (String args[]){

    //falo para meu for, para cada String (defino o tipo) s (dou um nome) , do meu array args (defino qual collection) faça algo...

    for(String s : args){}

    //lembrando que o ":" define de onde virá a minha String, minha variável.

}

3) Você não deve ter especificado a classe :D, no caso a Collections.

olhe esse link https://docs.oracle.com/javase/8/docs/api/java/util/Collections.html

e de um ctrl+f por sort.

Espero ter ajudado.

Oi Ronaldo, tudo bem? Bom, seria interessante que fosse aberto um tópico para cada dúvida, mas tudo bem, vamos adiante.

1 - O CompareTo é um metodo da Inteface Comparable. Este metodo é usado para ordenação de elementos em uma lista, basicamente, mas para essa ordenação acontecer é preciso fazer uma comparação, certo? Quem vem antes de que elemento? Deve haver uma comparação para se chegar a solução desse ordenamento.Nesse caso, o outra, é uma referencia a um outro objeto (Outra conta) que vai ser comparado com o objeto atual (Que também é uma conta), e nesse caso, a comparação vai ser feita no valor do saldo das duas contas. Entende?

2 - Esse for, é o que chamamos de foreach, ele pecorre todos os elementos de uma lista. É equivalente a fazer o seguinte:

for(int i = 0; i < contas.length; i++){ 
    ....
}

Mas acontece, que no for tradicional, você teria que obter cada uma das contas atraves de i. O foreach simplifica isso, ele já pega o elemento (objeto) da lista e atribui a variavel contaPoupanca e faz a iteração do loop, passando sempre o proximo item da lista para a vaiavel contaPoupanca. Entende?

3 - Verdade, também não encontrei, mas ele está na Interface List, pode ter sido um erro do pessoal: http://docs.oracle.com/javase/8/docs/api/java/util/List.html#method.summary