package com.example.nav; //clase logica encargada de la busqueda, mandando strings devuelve //un array con los cursos y alumnos que coinciden con la busqueda, //además de sus respectivas posiciones import java.util.Locale; public class Buscador { Object[] cursosYAlumnos = new Object[4]; Curso[] cursosRet = new Curso[0]; Alumno[] alumnosRet = new Alumno[0]; int[] posCursos = new int[0]; int[][] posAlumnos = new int[0][2]; public Object[] buscar(Curso[] cursos, String busqueda) { String busMin = busqueda.toLowerCase(Locale.getDefault()); for (int i = 0; i < cursos.length; i++) { if (cursos[i].getCurso().toLowerCase(Locale.getDefault()) .startsWith(busMin)) { addCurso(cursos[i], i); } for (int j = 0; j < cursos[i].getAlumnos().length; j++) { if (cursos[i].getAlumnos()[j].getNombre() .toLowerCase(Locale.getDefault()).startsWith(busMin)) { addAlumno(cursos[i].getAlumnos()[j], i, j); } } } cursosYAlumnos[0] = cursosRet; cursosYAlumnos[1] = alumnosRet; cursosYAlumnos[2] = posCursos; cursosYAlumnos[3] = posAlumnos; return cursosYAlumnos; } public void addCurso(Curso curso, int pos) { Curso[] cursosAux = new Curso[cursosRet.length + 1]; int[] posCursosAux = new int[posCursos.length + 1]; for (int i = 0; i < cursosRet.length; i++) { cursosAux[i] = cursosRet[i]; posCursosAux[i] = posCursosAux[i]; } posCursosAux[posCursosAux.length - 1] = pos; cursosAux[cursosAux.length - 1] = curso; posCursos = posCursosAux; cursosRet = cursosAux; } public void addAlumno(Alumno alumno, int curso, int pos) { Alumno[] alumnosAux = new Alumno[alumnosRet.length + 1]; int[][] posAlumnosAux = new int[alumnosRet.length + 1][2]; for (int i = 0; i < alumnosRet.length; i++) { alumnosAux[i] = alumnosRet[i]; posAlumnosAux[i][0] = posAlumnos[i][0]; posAlumnosAux[i][1] = posAlumnos[i][1]; } alumnosAux[alumnosAux.length - 1] = alumno; posAlumnosAux[posAlumnosAux.length - 1][0] = curso; posAlumnosAux[posAlumnosAux.length - 1][1] = pos; alumnosRet = alumnosAux; posAlumnos = posAlumnosAux; } }