Sunteți pe pagina 1din 7

1) Abra sua classe Conta e veja se ela possui o atributo numero. Se no possuir, adicione-o e crie o seu getter.

2) Faa sua classe ContaPoupanca implementar a interface Comparable<ContaPoupanca>. Utilize o critrio de ordenar pelo nmero da conta ou pelo seu saldo.

3) Crie uma classe TestarOrdenacao, instancie vrias contas e adicione-as a uma List<ContaPoupanca>. Use o Collections.sort() nesta lista. Faa um lao para imprimir todos os nmeros das contas na lista j ordenada: ATENO: observe que temos um mtodo compareTo em nossa classe e nosso cdigo nunca o invoca! Isto muito comum. Reescrevemos (ou implementamos) um mtodo e quem o invocar ser um outro conjunto de classes (nesse caso, quem est chamando o compareTo o Collections.sort, que o usa como base para o algoritmo de ordenao). Isso cria um sistema extremamente coeso e, ao mesmo tempo, com baixo acoplamento: a classe Collections nunca imaginou que ordenaria objetos do tipo ContaPoupanca, mas j que eles so Comparable, o seu mtodo sort est satisfeito.

4) O que teria acontecido se a classe ContaPoupanca no implementasse Comparable<ContaPoupanca> mas tivesse o mtodo compareTo? Faa um teste e veja o que acontece. Basta ter o mtodo, sem assinar a interface? Aps a retirada do implements Comparable<ContaPoupanca> a IDE atesta um erro na classe TestarOrdenacao pois o Collections.sort() precisa do mtodo desde que a classe onde esteja inserido tenha assinado a interface.

5) Utilize uma LinkedList em vez de ArrayList. Precisamos alterar mais algum cdigo para que essa substituio funcione? Rode o programa. Alguma diferena? Tanto LinkedList quanto ArrayList implementam a interface List. No precisa alterar nenhum cdigo. O programa roda normalmente.

6) Como posso inverter a ordem de uma lista? Como posso embaralhar todos os elementos de uma lista? Consulte a documentao da classe Collections dentro do pacote java.util. Para que uma lista seja: invertida, usa-se o mtodo Collections.reverse(lista); embaralhada, usa-se o mtodo Collections.shuffle(lista); e rotacionada, usa-se o mtodo Collections.rotate(lista);

7) Mude o critrio de comparao da sua ContaPoupanca. Adicione um atributo nomeDoCliente na sua classe (caso ainda no exista algo semelhante), mude o compareTo para que uma lista de ContaPoupanca seja ordenada alfabeticamente pelo atributo nomeDoCliente.

8) Insira novas contas atravs de um lao atribuindo saldos aleatrios (java.util.Random) e teste a ordenao.

S-ar putea să vă placă și