Monday, November 11, 2013

Treinamento Java 1 Básico - Capítulo 8 - Collections

Exercício 1: Desenvolva uma aplicação Java que gere e armazene todos os números inteiros entre 1 e 1000 randomicamente e depois ordene os números gerados em ordem crescente e em ordem decrescente, utilizando um ArrayList e implementando interfaces Comparable.

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import java.util.ArrayList;
  7. import java.util.Collections;
  8. import java.util.Random;

  9. /**
  10.  *
  11.  * @author paulo983
  12.  */
  13. public class UIExercicio01 {
  14.     
  15.     public static void main(String[] args) {
  16.         
  17.         ArrayList numeros = new ArrayList();
  18.         
  19.         Random r = new Random();
  20.         for(int i = 0; i < 20; i++)
  21.             numeros.add(r.nextInt(1000));
  22.         
  23.         //Ordem de inserção
  24.         System.out.println(numeros);

  25.         //ordem crescente
  26.         Collections.sort(numeros);
  27.         System.out.println(numeros);

  28.         //ordem reversa
  29.         Collections.reverse(numeros);
  30.         System.out.println(numeros);        
  31.         
  32.     }
  33. }
Exercício 2: Crie uma classe Conta Bancária contendo os atributos número da conta, nome do cliente e saldo atual. Implemente construtores, getters e setters. Desenvolva aplicações Java que apresente as seguintes funcionalidades:
a) 1 - Incluir (solicitação dos dados de uma conta bancária em um ArrayList);
b) 2 - Listar (objetos armazenados no ArrayList) em ordem alfabética;
c) 3 - Listar (objetos armazenados no ArrayList) em ordem decrescente de saldo atual;
d) 4 - Pesquisar e mostrar informações de um determinado cliente através do númera da conta ou seu nome, utilizando coleções (HashMap).


  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package modelo;

  6. /**
  7.  *
  8.  * @author paulo983
  9.  */
  10. public class ContaBancaria implements Comparable<ContaBancaria> {
  11.     
  12.     private String nrConta;
  13.     private String nomeCliente;
  14.     private double saldoConta;

  15.     public ContaBancaria(String nrConta, String nomeCliente, double saldoConta) {
  16.         this.nrConta = nrConta;
  17.         this.nomeCliente = nomeCliente;
  18.         this.saldoConta = saldoConta;
  19.     }

  20.     public String getNrConta() {
  21.         return nrConta;
  22.     }

  23.     public void setNrConta(String nrConta) {
  24.         this.nrConta = nrConta;
  25.     }

  26.     public String getNomeCliente() {
  27.         return nomeCliente;
  28.     }

  29.     public void setNomeCliente(String nomeCliente) {
  30.         this.nomeCliente = nomeCliente;
  31.     }

  32.     public double getSaldoConta() {
  33.         return saldoConta;
  34.     }

  35.     public void setSaldoConta(double saldoConta) {
  36.         this.saldoConta = saldoConta;
  37.     }

  38.     @Override
  39.     public int compareTo(ContaBancaria outroObjeto) {

  40.         if(this.getNomeCliente().compareTo(outroObjeto.getNomeCliente()) < 0)
  41.                 return -1;
  42.         else if(this.getNomeCliente().compareTo(outroObjeto.getNomeCliente()) == 0)
  43.                 return 0;
  44.         else 
  45.                 return 1;
  46.     }

  47. }


  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package controle;

  6. import java.util.ArrayList;
  7. import java.util.Collections;
  8. import java.util.Comparator;
  9. import java.util.HashMap;
  10. import modelo.ContaBancaria;

  11. /**
  12.  *
  13.  * @author paulo983
  14.  */
  15. public class ControleContaBancaria {

  16.     public static void listaEmOrdemAlfabetica(ArrayList<ContaBancaria> temp){
  17.         
  18.         Collections.sort(temp);
  19.         
  20.         System.out.println("Clientes em Ordem Alfabética\n\n");
  21.         for(ContaBancaria c : temp)
  22.             System.out.println(c.getNomeCliente());
  23.     }

  24.     public static void listaEmOrdemSaldoDecrescente(ArrayList<ContaBancaria> temp){
  25.         
  26.         Comparator<ContaBancaria> compSaldo = new ContaBancariaSaldoCompare();
  27.         
  28.         Collections.sort(temp,compSaldo);
  29.         
  30.         System.out.println("Clientes em Ordem Decrescente de Saldo\n\n");        
  31.         for(ContaBancaria c : temp)
  32.             System.out.println(c.getNomeCliente()+" - "+c.getSaldoConta());
  33.     }
  34.     
  35.     public static void consultaContaBancaria(ArrayList<ContaBancaria> temp, String nrConta){

  36.         HashMap<String, String> hmContas = new HashMap<String, String>();
  37.         
  38.         for(ContaBancaria c : temp)
  39.             hmContas.put(c.getNrConta(), c.getNomeCliente());
  40.         
  41.         if(hmContas.containsKey(nrConta))
  42.             javax.swing.JOptionPane.showMessageDialog(null, nrConta+" do cliente "+hmContas.get(nrConta),"Mensagem",javax.swing.JOptionPane.INFORMATION_MESSAGE);
  43.         else
  44.             javax.swing.JOptionPane.showMessageDialog(null, nrConta+" não cadastrada!","Mensagem",javax.swing.JOptionPane.INFORMATION_MESSAGE);
  45.         
  46.     }
  47. }



  1. package controle;

  2. import java.util.Comparator;
  3. import modelo.ContaBancaria;

  4. public class ContaBancariaSaldoCompare implements Comparator<ContaBancaria>{

  5. /*
  6.  * deve retornar número negativo se o1 deve vir antes de o2
  7.  * deve retornar número positivo se o1 deve vir depois de o2
  8.  * deve retornar zero se o1 e o2 forem iguais
  9.  * */
  10. @Override
  11. public int compare(ContaBancaria o1, ContaBancaria o2) {
  12. // TODO Auto-generated method stub
  13. if(o1.getSaldoConta() < o2.getSaldoConta())
  14. return -1;
  15. else if(o1.getSaldoConta() == o2.getSaldoConta())
  16. return 0;
  17. else 
  18. return 1;
  19. }
  20. }

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package visao;

  6. import controle.ControleContaBancaria;
  7. import java.util.ArrayList;
  8. import modelo.ContaBancaria;

  9. /**
  10.  *
  11.  * @author paulo983
  12.  */
  13. public class UIContaBancaria {
  14.     
  15.     public static void main(String[] args) {
  16.         
  17.         ArrayList<ContaBancaria> contas = new ArrayList<>();
  18.         
  19.         char opc;
  20.         do{
  21.             opc = javax.swing.JOptionPane.showInputDialog("Menu\n\n1-Incluir\n2-Listar ordem alfabética\n3-Listas saldo decrescente\n4-Pesquisa\n5-Sair").charAt(0);
  22.             
  23.             switch(opc){
  24.                 case '1':
  25.                     ContaBancaria c = new ContaBancaria(
  26.                             javax.swing.JOptionPane.showInputDialog("Nº Conta: "),
  27.                             javax.swing.JOptionPane.showInputDialog("Digite o nome: "),
  28.                             Double.parseDouble(javax.swing.JOptionPane.showInputDialog("Digite o saldo: "))
  29.                     );
  30.                     contas.add(c);
  31.                     break;
  32.                 case '2':
  33.                     ControleContaBancaria.listaEmOrdemAlfabetica(contas);
  34.                     break;
  35.                 case '3':
  36.                     ControleContaBancaria.listaEmOrdemSaldoDecrescente(contas);
  37.                     break;
  38.                 case '4':
  39.                     ControleContaBancaria.consultaContaBancaria(contas, javax.swing.JOptionPane.showInputDialog("Nº conta para pesquisa: "));
  40.                     break;
  41.             }
  42.             
  43.         }while(opc != '5');
  44.     }
  45.     
  46. }

No comments:

Post a Comment