Como Excluir alunos com entrada anterior a um determinado ano passado como entrada

Faça um programa em JAVA que realize o cadastro de alunos com as seguintes informações:
número da matrícula, nome do aluno, nome do curso e ano de entrada. O banco permitirá o
cadastro de no máximo 20 alunos e não poderá haver mais que uma matrícula com o mesmo
número. Crie o menu de opções a seguir.
Menu de opções:

  1. Cadastrar aluno.
  2. Visualizar nome, matrícula e ano de entrada de todos os alunos de um determinado curso.
    3. Excluir alunos com entrada anterior a um determinado ano passado como entrada.
  3. Sair.

Estou com dificuldades nas partes :
colocar um array com tamanho de 20 alunos
Excluir alunos com entrada anterior a um determinado ano passado como entrada.( so consigo excluir usando string)
Não houver uma matricula com o mesmo numero

import java.util.Scanner;

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */

/**
*

  • @author broth
    */
    public class Principal {

    public static void main(String[] args) {
    Scanner entrada = new Scanner(System.in);
    Scanner entradaString = new Scanner(System.in);

     int menu;
     //referencia para a classe Livro
     Aluno objAluno;
    
     String nome, Curso;
     int ano, matricula;
    
    
     do {
         exibirmenu();
         menu = entrada.nextInt();
    
         switch (menu) {
             case 1: //cadastro do funcionario
                 System.out.println("====> Cadastro de Alunos");
                 System.out.println("Digite o nome do Aluno");
                 nome = entradaString.nextLine();
                 System.out.println("Digite o Curso");
                 Curso = entradaString.nextLine();
                 System.out.println("Matrícula");
                 matricula = entrada.nextInt();
                 System.out.println("Ano");
                 ano = entrada.nextInt();
            
    
    
                 //criar objeto da classe
                 objAluno= new Aluno(nome, Curso, matricula, ano);
    
                 //guardar no Arraylist
                 Cadastro.adicionar(objAluno);
    
                 break;
             case 2:
                 System.out.println("===> Lista de Alunos");
                 System.out.println(Cadastro.listar());
    
                 break;
             case 3:
                 System.out.println("Excluir Aluno");
                 System.out.println("Digite o nome do Aluno");
                 nome = entradaString.nextLine();
                 if( !(Cadastro.getListarAlunos().isEmpty())){ 
                     if(Cadastro.remover(nome)){
                          System.out.println("Aluno removido com sucesso");
                     
                      }else{
                        System.out.println("Aluno não encontrado");
                     }
                     
                 }else{
                 System.out.println("Não existe este Aluno");
                 }
                 break;
             case 4:
                      System.out.println("Pesquisa por Curso");
                 System.out.println("Digite o nome do Curso: ");
                 Curso = entradaString.nextLine();
                 System.out.println("Existem " + Cadastro.pesquisar(Curso) + " Livros(a) do Curso " + Curso);
                 break;
             case 5:
                 System.out.println("");
                 break;
              default:
                 System.out.println("Opção de Menu inválida");
    
         }
    
        }while(menu != 6);
    

    }//fim da main

    static void exibirmenu(){

     System.out.println("========== Cadastro de Alunos =========");
     System.out.println(" 1 - Cadastrar");
     System.out.println(" 2 - Listar");
     System.out.println(" 3 - Exclui Aluno");
     System.out.println(" 4 - Pesquisar pelo Curso");
     System.out.println(" 5 - Sair");
     System.out.println(" ====> Escolha uma Opção");
    

    }

}

public class Aluno {
private String Nome;
private String Curso;
private int Matricula;
private int Ano;

public Aluno(String Nome, String Curso, int Matricula, int Ano) {
    this.Nome = Nome;
    this.Curso = Curso;
    this.Matricula = Matricula;
    this.Ano = Ano;
}

public String getNome() {
    return Nome;
}

public void setNome(String Nome) {
    this.Nome = Nome;
}

public String getCurso() {
    return Curso;
}

public void setCurso(String Curso) {
    this.Curso = Curso;
}

public int getMatricula() {
    return Matricula;
}

public void setMatricula(int Matricula) {
    this.Matricula = Matricula;
}

public int getAno() {
    return Ano;
}

public void setAno(int Ano) {
    this.Ano = Ano;
}

    public String imprimir() {
    return "Nome " + Nome + "\nCurso " + Curso +  "\nMatricula " + Matricula + "\nAno " + Ano;
}

}

public class Cadastro {

private static ArrayList<Aluno> listarAlunos = new ArrayList<>();

//metodo Get

public static ArrayList<Aluno> getListarAlunos() {
    return listarAlunos;
}

//adicionar um Objeto na lista1
static public void adicionar(Aluno p){
listarAlunos.add(p);
}

//lista todos os objetos da lista
static public String listar(){
    String saida = "";
    int i=1;
    for(Aluno p : listarAlunos) {
      saida += "\n====== Alunos =====\n";
    //  saida += "\nMatícula Nº " + (i++) + "\n";
      saida += p.imprimir() + "\n";
    }
    
    return saida;
}
 // pesquisa por Curso
public static int pesquisar(String Curso){
    int qtd = 0;
    
    for(Aluno p : listarAlunos) {
        if(p.getCurso().equalsIgnoreCase(Curso)){
          qtd++;
        }
    }
    
    return qtd;
}


//remove um funcionario pelo nome
 static public boolean remover(String nome){
  for(Aluno p : listarAlunos){
  if(p.getNome().equalsIgnoreCase(nome)){
    listarAlunos.remove(p);
  return true;
  }
  
  }
  
  return false;
 }

}

Cria um array e toda vez que for tentar fazer a operação de incluir um aluno no array, faz o teste com If para as duas condições. Testa se o size é menor que 20 e se existe a matrícula em alguma posição do array.