Como listar dados de um Array

7 respostas
G

Galera é o seguinte preciso mostrar o conteudo que está dentro de um array ja tentei aqui mas não conseguir. olha se algo errado no meu programa.

Abaixo meu programa principal.

Depois tem a classe com Array list ta errado ???

public class PrincipalApp {
	
	public static void main (String[] args) {
		
		
		
	  System.out.println("");
	  System.out.println("                 COMPUTADOR DE BORDO        ");
	  System.out.println("");
	  System.out.println("");
	  
	  int opcao = 0; do 
	  {
	  	
	  
	  System.out.println(" \n");  	
      System.out.println("ESCOLHA OPCAO DESEJADA>");
      System.out.println("");
      System.out.println("");
      System.out.println("1 - CADASTRAR COMPUTADOR DE BORDO FIAT");
      System.out.println("");
	  System.out.println("2 - CADASTRAR COMPUTADOR DE BORDO FORD");
	  System.out.println("");
	  System.out.println("3 - LISTAR CADASTRO DE COMPUTADORES DE BORDO");
	  System.out.println("");
	  System.out.println("\n0 - SAIR \n");
	  opcao = Keyboard.readInt();
	  switch (opcao) {
	  	
	  	 case 1 :   {  
     	    
     	                System.out.println("");  
                        System.out.println("-----------------------------");
                        System.out.println("Computador de Bordo Fiat");
                        System.out.println("-----------------------------");
                        System.out.println("");
						System.out.print("Digite o Codigo..: ");
						String codigo = Keyboard.readString();
						System.out.print("Digite o Km Rodado.: ");
						String kmRodado = Keyboard.readString();
						System.out.print("Digite Quantidade de Litros: ");
						String qteLitros = Keyboard.readString();
						System.out.print("Digite Consumo Medio: ");
						String consumoMedio = Keyboard.readString();
						ComputadoresBordo computadoresbordo = new ComputadoresBordo();		
						ComputadorBordoFiat bordofiat = new ComputadorBordoFiat(codigo,kmRodado,qteLitros,consumoMedio);
						computadoresbordo.insere(bordofiat);
                  break;
                 }
         case 2 :   while (true) {
     	    
     	                System.out.println("");  
                        System.out.println("-----------------------------");
                        System.out.println("Computador de Bordo Ford");
                        System.out.println("-----------------------------");
                        System.out.println("");
						System.out.print("Digite o Codigo..: ");
						String codigo = Keyboard.readString();
						System.out.print("Digite o Km Rodado.: ");
						String kmRodado = Keyboard.readString();
						System.out.print("Digite Quantidade de Litros: ");
						String qteLitros = Keyboard.readString();
						System.out.print("Digite Consumo Instantaneo: ");
						String consumoInstantaneo = Keyboard.readString();
						ComputadoresBordo computadoresbordo = new ComputadoresBordo();		
						ComputadorBordoFord bordoford = new ComputadorBordoFord(codigo,kmRodado,qteLitros,consumoInstantaneo);
						computadoresbordo.insere(bordoford);
                   break;		
                      }
	           break;
	      case 3 :  while (true) {
	      	             System.out.println("Listagem dos Computadores de Bordo");
                         System.out.println(computadoresbordo.toString());
	      	            break; 
	      	             }
	      	                 break;      
	      case 0 : break;                

                 default :{
                  /*
                   * Mostra mensagem de erro
                   */
                  System.out.println("Opcao invalida");
                 }
      }
    } while (opcao != 0);
    
    System.out.println("--------------------------------------------");
    System.exit(0);          	
	
	}
	
	
	
	
}

CODIGO COM ARRAY LIST

import java.util.ArrayList;

public class ComputadoresBordo {
	/* Declarando um objeto : vector de Equipamento */
    private ArrayList computadoresbordo; 	
	
	public ComputadoresBordo () {
		this.computadoresbordo = new ArrayList();
	}

	public void insere (ComputadorBordo computadorbordo) {
		this.computadoresbordo.add(computadorbordo);
		
	}

    public String toString () {
    StringBuffer sb = new StringBuffer("ComputadoresBordo : ");
    for (int i = 0; i < this.computadoresbordo.size(); i++ ) {
    ComputadorBordo computadorBordo = (ComputadorBordo) this.computadoresbordo.get(i);
    sb.append(ComputadorBordo.toString());
    }
    return sb.toString();
    }

}

7 Respostas

alucardeck

tah meio complicado entender o codigo com esses nomes parecidos…
tem q separar melhor =)

e oq vc ker listar exatamente?
esta usando uma classe chamada ComputadoresBordo… mas qual metodo dela vai utilizar? oq faz o .toString dela?
eu entendo isso como um “loop” infinito…
jah q o objeto ComputadoresBordo esta chamando um metodo interno toString… que fica chamando ele mesmo eternamente…
nao deu falta de memoria não ?

para lista o arrayList…

for (int i = 0; i < this.computadoresbordo.size(); i++ ) {  
     ComputadorBordo computadorBordo = (ComputadorBordo) this.computadoresbordo.get(i);  
     sb.append(ComputadorBordo.toString());  
  }

dah pra usar ele mesmo… desde q ele nao fique dentro da propria classe q vc esta chamando…

tah uma bagunça xD

sergiotaborda
gnr_ssa:

CODIGO COM ARRAY LIST

import java.util.ArrayList;

public class ComputadoresBordo {
	/* Declarando um objeto : vector de Equipamento */
    private ArrayList computadoresbordo; 	
	

    public String toString () {
    StringBuffer sb = new StringBuffer("ComputadoresBordo : ");
    for (int i = 0; i < this.computadoresbordo.size(); i++ ) {
    ComputadorBordo computadorBordo = (ComputadorBordo) this.computadoresbordo.get(i);
    sb.append(computadorBordo.toString());  //<-- c minusculo !!!
    }
    return sb.toString();
    }

}

Veja o detalhes acima, tlv seja isso.
Você sobre-escreveu toString em ComputadoresBordo mas sobre-escreveu também em ComputadorBordo ?

G

Tipo ComputadorBordo e uma classe - ComputadoresBordo e o Array

E pq eu tenho as classes:

ComputadorBordo
ComputadorBordoFiat
ComputadorBordoFord
ComputadoresBordo - ArrayList
PrincipalApp

EU to usando metodo toString dentro de cada classe para poder chamar ele no programa principal e exibir todos os dados.

Tipo olhe abaixo como ta a classe ComputadorBordo

public abstract class ComputadorBordo {
	
	private String codigo;
	private String kmRodado;
	private String qteLitros;
	
	public ComputadorBordo (String codigo,String kmRodado, String qteLitros) {
		
	setCodigo(codigo);
	setKmRodado(kmRodado);
	setQteLitros(qteLitros);
	}
	
		public void setCodigo (String codigo) {
		this.codigo = codigo;
		}
			
        public void setKmRodado (String kmRodado) {
		this.kmRodado = kmRodado;
		}
		public void setQteLitros (String qteLitros) {
		this.qteLitros = qteLitros;
		}
		public String getCodigo () {
		return codigo;
		}
		public String getKmRodado () {
		return kmRodado;
		}
		public String getQteLitros () {
		return qteLitros;
		}
		
		public String toString () {
		return("\n" + "Codigo: " + codigo + " " + "kmRodado: " + kmRodado + " " + "qteLitros: " + qteLitros + "\n");
		
     }
}
alucardeck

agora deu pra entender melhor…
mas acho q nao tinha a necessidade de criar uma classe que abrigue um ArrayList…

jah q o arraylist serve exatamente para isso… abrigar varios objetos…
mas em todo caso…

acho q o erro esta no

public String toString () {  
     StringBuffer sb = new StringBuffer("ComputadoresBordo : ");  
     for (int i = 0; i < this.computadoresbordo.size(); i++ ) {  
          ComputadorBordo computadorBordo = (ComputadorBordo) this.computadoresbordo.get(i);  
          [b]sb.append(ComputadorBordo.toString());  [/b]
     }  
     return sb.toString();  
 }

quando vc pois sb.append(ComputadorBordo.toString())…
vc esta usando o metodo da classe… que seria uma classe nao instanciada, e soh iria retornar metodos null (creio eu)…
vc deveria por “computadorBordo.toString()”… que seria o nome do OBJETO e nao dah classe

repare q a letra “C” estava maiuscula (classe)… deve ser minuscula para ser o nome do objeto

EDIT: ahh… achei q colocando o [ “B” ] dentro do codigo ia ficar em negrito =P

G

Ae galera obrigado por ta ajudando ae, mas alterei como falaram e nem a pau nem mostra os dados.

C

Na minha humilde opinião eu faria um pouco diferente, acho que até facilitaria.

1 - Descreveria a classe ComputadorBordo:

public class ComputadorBordo 
{
	private String marca;
	private int codigo;
	private int kmRodado;
	private int q_litros;
	private int consumo;

    public String getMarca()
    {
        return marca;
    }

    public void setMarca( String marca )
    {
        this.marca = marca;
    }

    public int getCodigo()
    {
        return codigo;
    }

    public void setCodigo( int codigo )
    {
        this.codigo = codigo;
    }

    public int getKmRodado()
    {
        return kmRodado;
    }

    public void setKmRodado( int kmRodado )
    {
        this.kmRodado = kmRodado;
    }

    public int getQ_litros()
    {
        return q_litros;
    }

    public void setQ_litros( int q_litros )
    {
        this.q_litros = q_litros;
    }

    public int getConsumo()
    {
        return consumo;
    }

    public void setConsumo( int consumo )
    {
        this.consumo = consumo;
    }
      
    @Override
    public String toString()
    {
        return marca;
    }
}

2 - Depois simplesmente utilizaria ela na classe PrincipalApp, coloquei o vetor de lista de carros nessa classe principal tb.
Pode-se trabalhar melhor o código, mas acho que a descrição fica mais fácil, pois a classe ComputadorBordo descreve o computador e a classe principal adiciona o computador no vetor.
Obs.: não consegui testar o código direito, não sei se roda de primeira, mas fiz modificações na parte da orientação a objetos.

public class PrincipalApp
{

    public PrincipalApp()
    {
    }

    public static void main( String[] args )
    {
        ArrayList<ComputadorBordo> list = new ArrayList();
        
        System.out.println( "" );
        System.out.println( "                 COMPUTADOR DE BORDO        " );
        System.out.println( "" );
        System.out.println( "" );

        int opcao = 0;
        do
        {
            System.out.println( " \n" );
            System.out.println( "ESCOLHA OPCAO DESEJADA>" );
            System.out.println( "" );
            System.out.println( "" );
            System.out.println( "1 - CADASTRAR COMPUTADOR DE BORDO FIAT" );
            System.out.println( "" );
            System.out.println( "2 - CADASTRAR COMPUTADOR DE BORDO FORD" );
            System.out.println( "" );
            System.out.println( "3 - LISTAR CADASTRO DE COMPUTADORES DE BORDO" );
            System.out.println( "" );
            System.out.println( "\n0 - SAIR \n" );
            opcao = Keyboard.readInt();
            switch ( opcao )
            {
                case 1:
                {
                    ComputadorBordo fiatComputer = new ComputadorBordo();
                    System.out.println( "" );
                    System.out.println( "-----------------------------" );
                    System.out.println( "Computador de Bordo Fiat" );
                    System.out.println( "-----------------------------" );
                    System.out.println( "" );
                    System.out.print( "Digite o Codigo..: " );
                    fiatComputer.setCodigo( Keyboard.readString() );
                    System.out.print( "Digite o Km Rodado.: " );
                    fiatComputer.setKmRodado( Integer.valueOf( Keyboard.readString() ) );
                    System.out.print( "Digite Quantidade de Litros: " );
                    fiatComputer.setQ_litros( Integer.valueOf( Keyboard.readString() ) );
                    System.out.print( "Digite Consumo Medio: " );
                    fiatComputer.setConsumo( Integer.valueOf( Keyboard.readString() ) );

                    list.add( fiatComputer );
                    break;
                }
                
                case 2:
                    ComputadorBordo fordComputer = new ComputadorBordo();
                    System.out.println( "" );
                    System.out.println( "-----------------------------" );
                    System.out.println( "Computador de Bordo Fiat" );
                    System.out.println( "-----------------------------" );
                    System.out.println( "" );
                    System.out.print( "Digite o Codigo..: " );
                    fordComputer.setCodigo( Keyboard.readString() );
                    System.out.print( "Digite o Km Rodado.: " );
                    fordComputer.setKmRodado( Integer.valueOf( Keyboard.readString() ) );
                    System.out.print( "Digite Quantidade de Litros: " );
                    fordComputer.setQ_litros( Integer.valueOf( Keyboard.readString() ) );
                    System.out.print( "Digite Consumo Medio: " );
                    fordComputer.setConsumo( Integer.valueOf( Keyboard.readString() ) );
                    list.add( fordComputer );
                    break;
                    
                case 3:
                        System.out.println( "Listagem dos Computadores de Bordo" );
                        for ( ComputadorBordo c : list )
                        {
                            System.out.println( "Marca: " + c.getMarca() );
                            System.out.println( "Consumo: " + c.getConsumo() );
                            
                            //Escreve o resto
                        }
                    break;
                default:
                {
                    /* 
                     * Mostra mensagem de erro 
                     */
                    System.out.println( "Opcao invalida" );
                }
            }
        }
        while ( opcao != 0 );

        System.out.println( "--------------------------------------------" );
        System.exit( 0 );
    }

}

Certo, falo

C

Putz, falto colocar a MARCA, fica assim:

public class PrincipalApp
{

    public PrincipalApp()
    {
    }

    public static void main( String[] args )
    {
        ArrayList<ComputadorBordo> list = new ArrayList();
        
        System.out.println( "" );
        System.out.println( "                 COMPUTADOR DE BORDO        " );
        System.out.println( "" );
        System.out.println( "" );

        int opcao = 0;
        do
        {
            System.out.println( " \n" );
            System.out.println( "ESCOLHA OPCAO DESEJADA>" );
            System.out.println( "" );
            System.out.println( "" );
            System.out.println( "1 - CADASTRAR COMPUTADOR DE BORDO FIAT" );
            System.out.println( "" );
            System.out.println( "2 - CADASTRAR COMPUTADOR DE BORDO FORD" );
            System.out.println( "" );
            System.out.println( "3 - LISTAR CADASTRO DE COMPUTADORES DE BORDO" );
            System.out.println( "" );
            System.out.println( "\n0 - SAIR \n" );
            opcao = Keyboard.readInt();
            switch ( opcao )
            {
                case 1:
                {
                    ComputadorBordo fiatComputer = new ComputadorBordo();
                    System.out.println( "" );
                    System.out.println( "-----------------------------" );
                    System.out.println( "Computador de Bordo Fiat" );
                    System.out.println( "-----------------------------" );
                    System.out.println( "" );
                    fiatComputer.setMarca( "FIAT" );
                    System.out.print( "Digite o Codigo..: " );
                    fiatComputer.setCodigo( Keyboard.readString() );
                    System.out.print( "Digite o Km Rodado.: " );
                    fiatComputer.setKmRodado( Integer.valueOf( Keyboard.readString() ) );
                    System.out.print( "Digite Quantidade de Litros: " );
                    fiatComputer.setQ_litros( Integer.valueOf( Keyboard.readString() ) );
                    System.out.print( "Digite Consumo Medio: " );
                    fiatComputer.setConsumo( Integer.valueOf( Keyboard.readString() ) );

                    list.add( fiatComputer );
                    break;
                }
                
                case 2:
                    ComputadorBordo fordComputer = new ComputadorBordo();
                    System.out.println( "" );
                    System.out.println( "-----------------------------" );
                    System.out.println( "Computador de Bordo Fiat" );
                    System.out.println( "-----------------------------" );
                    System.out.println( "" );
                    fordComputer.setMarca( "FORD" );
                    
                    System.out.print( "Digite o Codigo..: " );
                    fordComputer.setCodigo( Keyboard.readString() );
                    System.out.print( "Digite o Km Rodado.: " );
                    fordComputer.setKmRodado( Integer.valueOf( Keyboard.readString() ) );
                    System.out.print( "Digite Quantidade de Litros: " );
                    fordComputer.setQ_litros( Integer.valueOf( Keyboard.readString() ) );
                    System.out.print( "Digite Consumo Medio: " );
                    fordComputer.setConsumo( Integer.valueOf( Keyboard.readString() ) );
                    list.add( fordComputer );
                    break;
                    
                case 3:
                        System.out.println( "Listagem dos Computadores de Bordo" );
                        for ( ComputadorBordo c : list )
                        {
                            System.out.println( "Marca: " + c.getMarca() );
                            System.out.println( "Consumo: " + c.getConsumo() );
                            
                            //Escreve o resto
                        }
                    break;
                default:
                {
                    /* 
                     * Mostra mensagem de erro 
                     */
                    System.out.println( "Opcao invalida" );
                }
            }
        }
        while ( opcao != 0 );

        System.out.println( "--------------------------------------------" );
        System.exit( 0 );
    }

}
Criado 10 de junho de 2008
Ultima resposta 10 de jun. de 2008
Respostas 7
Participantes 4