Eclipse y Netbeans son IDE's y realmente no tienen nada que ver con el código Java en sí, que uses uno u otro no afecta al programa, es decir, lo que escribas en una IDE te debe funcionar en las demás. De hecho ni si quiera pueden compilar, cuando tú le das al botón "compilar", lo que hacen es llamar a la aplicación creada por Sun Microsystems (propietaria de java) que se encuentra en la carpeta
...\jdk\bin\javac y es la que realmente crea el fichero ".class" con el código compilado.
En definitva, no importa qué plataforma o IDE utilices para desarrollar tu aplicación porque debe funcionarte en las demás.
Sobre las que mencionas, no puedo darte una opinión clara acerca de cuál de las dos IDE's es más potente porque pocas veces he tocado netbeans; en la universidad nos incitaban a utilizar eclipse (supongo que por algo será) y es con el que más he trabajado. Vas a encontrar gente que se incline hacia una u otra plataforma, pero lo que yo te recomiendo es que vayas alternando hasta que veas con cuál te sientes más cómodo.
En tu proyecto no veo ningún error importante, solo un pequeño fallo conceptual:
ArrayList<T> es un tipo genérico que hereda de otro tipo genérico List<T> que a su vez hereda de otro Collection<T>, éste último es la raíz de todas las colecciones predefinidas de java (listas, arrays dinámicos, árboles, etc.). Si te fijas todas utilizan un tipo genérico pero es casi obligatorio parametrizarla a un tipo declarado. Por tanto, cuando creas un array dinámico:
private ArrayList<T> lista = new ArrayList<T>();
Hay que sustituir el tipo genérico T por uno ya declarado e implementado, por ejemplo:
private ArrayList<Cuenta> lista2= new ArrayList<Cuenta>(); //Un array dinámico de cuentas
También puedes utilizar el tipo comodín
? para decirle a la lista que le vas a asignar tanto listas cuyos objetos son de tipo "Cuenta" como los subtipos de "Cuenta":
private ArrayList<? extends Cuenta> lista = new ArrayList<CuentaEstructurada>();
Lo que tú haces en el programa es trabajar con tipos "Object", por tanto debes organizarlo del siguiente modo:
private ArrayList<Object> lista = new ArrayList<Object>();
Cuando quieras utilizar un método de uno de los objetos que hay en la lista debes aplicar casting:
Cuenta cuenta = (Cuenta) lista.get(5); //Obtienes el quinto elemento de la lista y se lo asignas a la variable "cuenta"
cuenta.metodo(); //Ahora podrás utilizar sus funciones
Espero que te sirva, si tienes alguna duda o no comprendes algo comenta.
Un saludo.