Estou iniciando com os estudos em programação. Meu professor passou um programa de cadastro de alunos em uma faculdade. Os dados são nome,idade,sexo e CPF. O CPF é o principal atributo, visto que ele é único. Haverá um menu onde é possível cadastrar um aluno novo ou também pesquisar relatório de um aluno, através do CPF. Meu professor exige trabalharmos com Arrays, não permite usar ArrayList. A dúvida é: posso fazer um array de objetos do tipo Aluno com bastante posições (+ou- 100), e inicialmente as posições serão preenchidas com alunos “em branco” sem nenhum atributo e quando eu quiser cadastrar um novo será substituído em uma posição do vetor?
Pode. Quando você cria o array, todas as posições vão ser inicializadas como null
. Para o programa ficar mais completo, você pode checar sempre que um aluno for inserido para ver se o array está cheio. Em caso positivo, você cria um novo array com o dobro do tamanho e copia os dados do array velho para o novo.
Fiz um exemplo básico, seria algo assim?
int ultimaPosicao = 0;
int tamanhoLista = 100;
Aluno[] alunos = new Aluno[100];
//pode criar um for para ir gerando novos alunos
Aluno aluno = new Aluno();
//seta valores em aluno
if(alunos.length == tamanhoLista){
Bloco[] novoArray = new Bloco[tamanhoLista * 2];
System.arraycopy(alunos, 0, novoArray, 0, tamanhoLista);
tamanhoLista = tamanhoLista * 2;
//após criar a nova lista você irá inserir no novo array
//faça uma regra com booleano para que utilize esta nova lista a partir da sua criação
}else{
alunos[ultimaPosicao] = aluno;
ultimaPosicao++;
}
Tire como base esse exemplo e customize conforme a sua necessidade.
1 curtida
Valeu por ajudar, achei uma outra solução similar
1 curtida