Hola.
Sería necesario que el menú se repita continuamente hasta que el usuario decida terminar el programa.
Se le pide opción al usuario y con un swith evaluamos que opción ha escogido.
Cada opción puede escribirse en un método separado, para facilitar las cosas, el arreglo y el Scanner para pedir datos por teclado pueden declararse como atributos de ámbito global.
Así, todos los métodos que vayamos a crear, tendrán acceso directo a estos atributos y podrán trabajar con ellos.
Pongo un ejemplo rápido, donde solo he creado alguna de las opciones del menú.
Si comprendes la forma en la que he estructurado el programa, intenta tú crear las otras opciones del menú que faltan por escribir.
Y luego cuando tenga más tiempo, te ayudo a corregir o completar lo que sea.
public class Menu {
private static String[] arreglo;
private static Scanner teclado = new Scanner(System.in);
public static void main(String[] args) {
int opcion = 0;
do {
System.out.println("\n\n\t\tMENU");
System.out.println("(1) - Insertar un elemento al arreglo");
System.out.println("(2) - Crear un arreglo");
System.out.println("(3) - actualizar posiciones del arreglo");
System.out.println("(4) - Eliminar un valor del arreglo");
System.out.println("(5) - Visualizar valores del arreglo");
System.out.println("(9) - TERMINAR PROGRAMA");
System.out.print("Elija opción: ");
opcion = Integer.parseInt(teclado.nextLine());
switch(opcion) {
case 1:
insertarElemento();
break;
case 2:
crearArreglo();
break;
case 3:
break;
case 4:
break;
case 5:
visualizarArreglo();
break;
case 9:
System.out.println("\n\t\tFIN DE PROGRAMA");
break;
default:
System.out.println("\nOpcion equivocada");
}
} while (opcion != 9);
}
private static void insertarElemento() {
if (arreglo == null)
System.out.println("\nERROR. Primero ha de crear un arreglo");
else {
//Buscamos primera posición libre
int libre = -1;
for (int i = 0; i < arreglo.length; i++)
if (arreglo[i] == null) {
libre = i;
break; //Fin de búsqueda
}
//Comprobamos si hemos encontrado alguna posicion libre
if (libre == -1)
System.out.println("\nNo hay posiciones libres."
+ "\nTendrá que eliminar valor o actualizar uno existente");
else {
System.out.print("\nIntroduzca valor: ");
arreglo[libre] = teclado.nextLine();
}
}
}
private static void crearArreglo() {
System.out.print("\nIndique tamaño del nuevo arreglo: ");
int tm = Integer.parseInt(teclado.nextLine());
if (tm > 0) {
arreglo = new String[tm];
System.out.println("\nArreglo creado. Ya puede insertar nuevos valores.");
}
else
System.out.println("\nERROR. Ha de indicar un tamaño mayor que 0");
}
private static void visualizarArreglo() {
if (arreglo == null)
System.out.println("\nERROR. Primero ha de crear un arreglo");
else {
System.out.println("\nValores registrados:");
for (String valor: arreglo)
if (valor != null)
System.out.print("[" + valor + "] ");
}
}
}