0
I have a fixed size 20 list, I need the user to add registrations, however, when I click on "show" option, it presents me only the first element I added in all positions. For example, if you type option 1 to insert and type 12, the entire array is occupied with number 12. How to solve?
public class Fifo {
private int lista[];
private int iniciolista;
private int fimlista;
private int matricula;
private int i;
//tem que criar as caracteristicas da classe fifo tipo oque ela é
Fifo(){
lista = new int[20];
iniciolista = -1;
fimlista = -1;
}
public void adicionar (int matricula) {
for (int i =0; i < lista.length; i++) {
if (lista[i] == 0) {
lista[i] = matricula;
}
}
}
//mostrar o array
public void mostrar () {
for(int x = 0; x < lista.length; x++){
System.out.println("posicao " + (x+1) + " = " +lista[x] );
}
}
}
import javax.swing.JOptionPane;
public class MenuFifo {
public static void main(String[] args) {
int opcao, aux;
String entra;
int matricula;
aux = 0;
Fifo lista;
lista = new Fifo();
//A baixo a variavel "entra" ira receber o valor opcao para o usuario escolher que operação deseja fazer.
do {
entra = JOptionPane.showInputDialog("\n\n\nMENU DE OPCOES"
+"\n\n\t1. INSERIR\n\t2. RETIRAR\n\t3. MOSTRAR"
+"\n\t4. DETONAR\n\t5. CABECA\n\t6. POPULACAO"
+"\n\t7. VAGAS\n\t8. PROCURAR\n\t9. VAZAR");
opcao = Integer.parseInt(entra);
switch(opcao){
//inserir a matricula na lista
case 1:
if (aux < 20) {
entra = JOptionPane.showInputDialog("INSIRA O NÚMERO DA MATRÍCULA\n");
matricula = Integer.parseInt(entra);
lista.adicionar(matricula);
System.out.println("/nA matricula de numero "+matricula+" foi adicionada com sucesson/n");
aux ++;
} else {
System.out.println("Você ultrapassou o limite da lista");
}
break;
case 2:
break;
case 3:
//mostrar o array
lista.mostrar();
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
}
} while (opcao != 9);
}
}
if you look closely your add method will see that it is going through the Dexes of your list, but if only allows you to add if it is at 0, then anything you add is always staying at index 0
– Lucas Miranda