Duvida com arrays. <<Resolvido>>

3 respostas
Rafadess

Olá pessoal, eu postei esse dias com essa duvida, e depois procuram no forum achei uma solução(devia ter procurado antes né… mas a gente aprende). Porém eu tentei implantar ela em outro exercicios que estou tentando fazer, e não consegui… O erro que aparece no Eclipse é: “Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 100”. O problema é o seguinte. Quero criar um método que adcione objetos a posiçoes de arrays, sem colocar um sobre o outro. Vou colocar o código da classe do começo, até o método:

public class Banco extends Conta{
	
	
	private int TotalDeContas;
	Conta[] contas = new Conta[100];

	public void adciona(Conta c){
		boolean teste = true;
		for (int i=0;teste;i++){
			if(contas[i]==null){
			contas[i] = c;
			}
		}
	}

A variavel TotalDeContas é outro método, que nãovem ao caso agora.
Em outra classe eu crio um objeto de tipo Banco de nome c1

Banco c1 = new Banco();

Depois eu invoco o método assim:

c1.adciona(c1);

O que eu queria com isso é que o objeto c1 fosse adcionado na próxima posição vaga do array contas[]; Mas pelo contrário ele dá erro, não to entendo. Alguém por favor me ajude. Agradeço.

3 Respostas

Bravox

A instrução for está em loop infinito e com isso está tentando colocar um objeto em uma posição que não existe no seu array, lembrando que o seu array tem 100 ( 0 a 99 ) , uma opção para resolver o seu problema seria:

public void adciona(Conta c){  
         
        for (int i=0;i<100;i++){  
             if(contas[i]==null){  
            contas[i] = c;  
             }  
         }  
  }
Raff

A variavel TotalDeContas é outro método, que nãovem ao caso agora.

Como assim, uma variável é uma váriavel não um metodo…

e você poderia fazer isso de maneira a usar um variável static…

exemplo:

static int i = 0;


public static void adicionarObjeto(Conta[] conta){
   
conta[i] = new Conta();
i++;
    

}
Rafadess

"A variavel TotalDeContas é outro método, que nãovem ao caso agora. " >>>>>>> Fui infeliz nessa frase. Deposi que li eu vi a besteira que falei … mas deixa pra lá.

Entendi o recado em vez de colocar um for eu posso fazer direto né. Testei e deu certo. Obrigadu pela ajuda :smiley:

Criado 25 de outubro de 2007
Ultima resposta 25 de out. de 2007
Respostas 3
Participantes 3