El programa no se cuelga, es que haces un bucle infinito.
Código Java:
Ver originalwhile(i.hasNext())
{
System.
out.
println(listaPrueba.
getNombre()); }
Este bucle no termina nunca, porque nunca avanzas el iterador.
El método hasNext siempre devuelve true (porque has insertado un valor en el arrayList) y no utilizas el método Next para que el iterador pase al siguiente valor
Código Java:
Ver originalwhile(i.hasNext())
{
i.next();
System.
out.
println(listaPrueba.
getNombre()); }
Eso arregla el problema del bucle infinito.
Lo que no arregla es si lo que haces en el programa tiene sentido o no, lo cual no puedo saber, porque no sé qué intentas hacer.
No entiendo tu pregunta:
Cita: hay alguna forma de ocupar un metodo para agregar valores y otro metodo para mostrar los datos del ArrayList y asi no tener todo en un mismo metodo como en mi programa.
Por supuesto que puedes tener todos los métodos que quieras, aunque intuyo que no es esa tu duda.
Saludos y si necesitas más ayuda, explícate algo más.