Lo primero es saludarte. Lo segundo es solucionar tu problema. Ante todo debes saber que las colecciones, son una herramienta muy útil, y poderosa. Tiene la ventaja sobre los arrays de no tener un tamaño determinado y estático, al contrario, estos crecen de forma dinámica, a medida que los elementos crecen.
Para tu problema, es lo preciso, así que vamos a hacer un proyecto, que guarde muchos estudiantes, con sus respectivos datos a manipular, modificar, etc.
1. Como primero vamos a crear una clase estudiante, que tenga los datos que necesitamos manipular.
package estudiantes;
public class Estudiante {
private String nombre;
private String primerApellido;
private String segundoApellido;
private String cedula;
private String facultad;
private String carrera;
private byte semestre;
private String otros;
public Estudiante(String nombre, String primerApellido, String segundoApellido, String cedula, String facultad, String carrera, byte semestre, String otros) {
this.nombre = nombre;
this.primerApellido = primerApellido;
this.segundoApellido = segundoApellido;
this.cedula = cedula;
this.facultad = facultad;
this.carrera = carrera;
this.semestre = semestre;
this.otros = otros;
}
public Estudiante(){
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getPrimerApellido() {
return primerApellido;
}
public void setPrimerApellido(String primerApellido) {
this.primerApellido = primerApellido;
}
public String getSegundoApellido() {
return segundoApellido;
}
public void setSegundoApellido(String segundoApellido) {
this.segundoApellido = segundoApellido;
}
public String getCedula() {
return cedula;
}
public void setCedula(String cedula) {
this.cedula = cedula;
}
public String getFacultad() {
return facultad;
}
public void setFacultad(String facultad) {
this.facultad = facultad;
}
public String getCarrera() {
return carrera;
}
public void setCarrera(String carrera) {
this.carrera = carrera;
}
public byte getSemestre() {
return semestre;
}
public void setSemestre(byte semestre) {
if(this.semestre>0 && this.semestre<=10)
this.semestre = semestre;
}
public String getOtros() {
return otros;
}
public void setOtros(String otros) {
this.otros=this.otros+";\n"+otros;
}
public String toString() {
return "Estudiante{\n" + " nombre=" + nombre + ",\n primerApellido=" + primerApellido + ",\n segundoApellido=" + segundoApellido + ",\n cedula=" + cedula + ",\n facultad=" + facultad + ",\n carrera=" + carrera + ",\n semestre=" + semestre + ",\n otros=" + otros + '}';
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------
2. Luego, creamos una clase que manipule dicho datos, por medio de una interfaz pública.
package bd;
import estudiantes.Estudiante;
import java.util.ArrayList;
import java.util.Iterator;
public class BDEstudiantes {
private static String claveAdministrador="clave";
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
private static ArrayList<Estudiante> miLista=new ArrayList<>();
public static boolean adiccionarEstudiante(String clave,String nombre, String primerApellido, String segundoApellido, String cedula, String facultad, String carrera, byte semestre, String otros){
if(claveAdministrador.equals(clave)){
Estudiante estd=new Estudiante(nombre,primerApellido,segundoApellido,cedula,facultad,carrera,semestre,otros);
miLista.add(estd);
return true;
}else
return false;
}
public static int numeroEstudiantes(){
return miLista.size();
}
public static String buscarEstudiante(String cedula){
String miAlumno=null;
boolean listo=false;
int indice=0;
while(indice<numeroEstudiantes()&&listo!=true){
if(miLista.get(indice).getCedula().equals(cedula)){
miAlumno=miLista.get(indice).toString();
listo=true;
}
++indice;
}
return miAlumno;
}
public static boolean buscarCedula(String cedula){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
return true;
}
++indice;
}
return false;
}
public static boolean modificarDatoNombre(String clave,String cedula,String nombre){
if(claveAdministrador.equals(clave)){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
miLista.get(indice).setNombre(nombre);
return true;
}
++indice;
}
}
return false;
}
public static boolean modificarPrimerApellido(String clave,String cedula,String apellido){
if(claveAdministrador.equals(clave)){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
miLista.get(indice).setPrimerApellido(apellido);
return true;
}
++indice;
}
}
return false;
}
public static boolean modificarSegundoApellido(String clave,String cedula,String apellido){
if(claveAdministrador.equals(clave)){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
miLista.get(indice).setSegundoApellido(apellido);
return true;
}
++indice;
}
}
return false;
}
public static boolean modificarCedula(String clave,String cedula){
if(claveAdministrador.equals(clave)){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
miLista.get(indice).setCedula(cedula);
return true;
}
++indice;
}
}
return false;
}
public static boolean modificarFacultad(String clave,String cedula,String facultad){
if(claveAdministrador.equals(clave)){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
miLista.get(indice).setFacultad(facultad);
return true;
}
++indice;
}
}
return false;
}
public static boolean modificarCarrera(String clave,String cedula,String carrera){
if(claveAdministrador.equals(clave)){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
miLista.get(indice).setCarrera(carrera);
return true;
}
++indice;
}
}
return false;
}
public static boolean modificarSemestre(String clave,String cedula,byte semestre){
if(claveAdministrador.equals(clave)){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
miLista.get(indice).setSemestre(semestre);
return true;
}
++indice;
}
}
return false;
}
public static boolean modificarOtros(String clave,String cedula,String otros){
if(claveAdministrador.equals(clave)){
int indice=0;
while(indice<numeroEstudiantes()){
if(miLista.get(indice).getCedula().equals(cedula)){
miLista.get(indice).setOtros(otros);
return true;
}
++indice;
}
}
return false;
}
public static ArrayList<String> mostrarAlumnos(){
//Se debe pasar los String de interés del ArrayList<Estudiante> miLista al ArrayList<String> alumnos
ArrayList<String> alumnos=new ArrayList<>();
//creamos un Iterator que recorra toda la colección
Iterator<Estudiante> it=miLista.iterator();
while(it.hasNext()){
alumnos.add(it.next().toString());
}
return alumnos;
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
3. Por último creamos una clase que contenga el método main, para ejecutar la aplicación, además de recibir datos por teclado, etc.
Este código está en la aplicación.
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Te adiciono la aplicación elaborada en Netbeans.
Espero que te sirva de ayuda....