Duvida com programa em ArrayList

Tenho que fazer um programa para gerenciamento de alunos.
No meio do caminho surgiu um probleminha que nao to conseguindo resolver.
Como vou repor as notas dos alunos pendentes?
O codigo:
MAIN:


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prova_de_logica;

import javax.swing.JOptionPane;

/**
 *
 * @author Usuario
 */
public class Prova_de_Logica {

    static int aprovados, pendentes, reprovados;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Logica classe = new Logica();
        int menu = 0;
        JOptionPane.showMessageDialog(null, "Bem vindo ao School Gerenciator!");
        while (menu != 7) {
            menu = Integer.parseInt(JOptionPane.showInputDialog(null, "MENU:"
                    + "\n[1] Cadastrar alunos"
                    + "\n[2] Alunos aprovados"
                    + "\n[3] Alunos pendentes"
                    + "\n[4] Alunos reprovados"
                    + "\n[5] Repor notas pendentes"
                    + "\n[6] Estatísticas"
                    + "\n[7] Sair"
                    + "\nPor favor, escolha uma opção e digite abaixo:"));

            if (menu == 1) {
                String Cadastro_de_nome = JOptionPane.showInputDialog(null, "Digite o nome do aluno:");
                classe.getNomes().add(Cadastro_de_nome);
                Double Cadastro_de_nota = Double.parseDouble(JOptionPane.showInputDialog(null, "Digite a nota do aluno:"));
                classe.getNotas().add(Cadastro_de_nota);

            } else if (menu == 2) {
                for (int i = 0; i < classe.getNotas().size(); i++) {
                    if (classe.getNotas().get(i) > 59 && classe.getNotas().get(i) <= 100) {
                        aprovados++;
                        classe.getSituacao().add('A');
                        JOptionPane.showMessageDialog(null, "APROVADOS:" //Mostra ao usuario os resultados
                                + "\nNome: " + classe.getNomes().get(i)
                                + "\nNota: " + classe.getNotas().get(i) + " pts"
                                + "\nSituacao: " + classe.getSituacao().get(i));

                    }
                }
            } else if (menu == 3) {
                for (int i = 0; i < classe.getNotas().size(); i++) {
                    if ((classe.getNotas().get(i) >= 50 && classe.getNotas().get(i) <= 60) && classe.getNotas().get(i) <= 100) {
                        pendentes++;
                        classe.getSituacao().add('P');
                        JOptionPane.showMessageDialog(null, "PENDENTES:" //Mostra ao usuario os resultados
                                + "\nNome: " + classe.getNomes().get(i)
                                + "\nNota: " + classe.getNotas().get(i) + " pts"
                                + "\nSituacao: " + classe.getSituacao().get(i));
                    }
                }
            } else if (menu == 4) {
                for (int i = 0; i < classe.getNotas().size(); i++) {
                    if (classe.getNotas().get(i) < 50 && classe.getNotas().get(i) <= 100) {
                        reprovados++;
                        classe.getSituacao().add('R');
                        JOptionPane.showMessageDialog(null, "REPROVADOS:" //Mostra ao usuario os resultados
                                + "\nNome: " + classe.getNomes().get(i)
                                + "\nNota: " + classe.getNotas().get(i) + " pts"
                                + "\nSituacao: " + classe.getSituacao().get(i));
                    }
                }
            } else if (menu == 5) {
                //????????????????????????????????????????????????????
                                  
            } else if (menu == 6) {
                double soma = 0;
                for (int i = 0; i < classe.getNotas().size(); i++) {
                    soma += classe.getNotas().get(i);

                }
                double media = soma / classe.getNotas().size();
                JOptionPane.showMessageDialog(null, "ESTATÍSTICAS:"
                        + "\nMédia Geral: " + media + "pts"
                        + "\nSoma de todas as notas: " + soma + " pts"
                        + "\nQuantidade de alunos aprovados: " + aprovados
                        + "\nQuantidade de alunos pendentes: " + pendentes
                        + "\nQuantidade de alunos reprovados: " + reprovados);

            }
        }
        JOptionPane.showMessageDialog(null, "Você saiu do sistema!");
    }
}

CLASSE:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prova_de_logica;

import java.util.ArrayList;

/**
 *
 * @author Usuario
 */
public class Logica {

    private ArrayList<String> nome = new ArrayList();
    private ArrayList<Double> nota = new ArrayList();
    private ArrayList<Character> situacao = new ArrayList();
    
    
    public void setNomes(ArrayList<String> nome) {
        this.nome = nome;
    }

    public ArrayList<String> getNomes() {
        return nome;
    }

    public void setNotas(ArrayList<Double> nota) {
        this.nota = nota;
    }

    public ArrayList<Double> getNotas() {
        return nota;
    }

    public void setSituacao(ArrayList<Character> situacao ) {
        this.situacao = situacao;
    }

    public ArrayList<Character> getSituacao() {
        return situacao;
    }
}

Bom dia, uma solução viavel seria criar uma lista auxiliar e após cria-la adicionar os alunos pendentes nela, e na opção 5 percorrer ela e reatribuir a nota daquele respectivo aluno, e a cada passo do for() adicionar ele na lista original, espero ter ajudado!