
Ordenar una matriz de un objeto (clase) por una de sus variables.
Publicado por Andrés (4 intervenciones) el 30/03/2014 03:56:41
Hola.
Para un trabajo de la universidad, tengo que hacer un programa en el que tengo una clase profesor con la identificación, nombre, apellidos, edad, sexo, horas que labora y lo que gana por cada hora laborada (ese orden también lo lleva el constructor de la clase).
Luego, en la clase main, tengo que hacer una matriz de 3*3 la cual debo llenar con 9 profesores (objetos la clase) diferentes. La información de cada profesor es llenada desde la misma clase por medio del constructor. Finalmente, tengo que hacer una serie de métodos. En uno de estos métodos tengo que indicar el nombre del profesor con menor edad. La lógica que pretendía aplicar era ordenar la matriz de menor a mayor y, al final, imprimir el nombre del índice [0][0] de la matriz. He intentado ordenar la matriz utilizando el método burbuja para ordenar matrices de enteros, sin embargo, no he logrado hacer esto ni aplicar la lógica.
Les adjunto mi código:
Muchas gracias de antemano.
Para un trabajo de la universidad, tengo que hacer un programa en el que tengo una clase profesor con la identificación, nombre, apellidos, edad, sexo, horas que labora y lo que gana por cada hora laborada (ese orden también lo lleva el constructor de la clase).
Luego, en la clase main, tengo que hacer una matriz de 3*3 la cual debo llenar con 9 profesores (objetos la clase) diferentes. La información de cada profesor es llenada desde la misma clase por medio del constructor. Finalmente, tengo que hacer una serie de métodos. En uno de estos métodos tengo que indicar el nombre del profesor con menor edad. La lógica que pretendía aplicar era ordenar la matriz de menor a mayor y, al final, imprimir el nombre del índice [0][0] de la matriz. He intentado ordenar la matriz utilizando el método burbuja para ordenar matrices de enteros, sin embargo, no he logrado hacer esto ni aplicar la lógica.
Les adjunto mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner in = new Scanner(System.in);
Profesor arreglo[][];
arreglo = new Profesor[3][3];
Profesor profe1 = new Profesor(126509404, "Edgar", "Hernandez", 29, "M", 8, 0);
profe1.setValorHora(1.66);
Profesor profe2 = new Profesor(233849920, "Nuria", "Ramírez", 52, "F", 4, 2.84);
profe2.setValorHora(1.66);
Profesor profe3 = new Profesor(126509404, "José", "Hernandez", 28, "M", 8, 1.66);
profe3.setValorHora(1.66);
Profesor profe4 = new Profesor(126509404, "Arlene", "Hernandez", 34, "M", 8, 1.66);
profe4.setValorHora(1.66);
Profesor profe5 = new Profesor(126509404, "Orlando", "Hernandez", 36, "M", 8, 1.66);
profe5.setValorHora(1.66);
Profesor profe6 = new Profesor(126509404, "Ximena", "Hernandez", 55, "M", 8, 1.66);
profe6.setValorHora(1.66);
Profesor profe7 = new Profesor(126509404, "Eduardo", "Hernandez", 44, "M", 8, 1.66);
profe7.setValorHora(1.66);
Profesor profe8 = new Profesor(126509404, "Johanna", "Hernandez", 35, "M", 8, 1.66);
profe8.setValorHora(1.66);
Profesor profe9 = new Profesor(126509404, "Gilberto", "Hernandez", 42, "M", 8, 1.66);
profe9.setValorHora(1.66);
arreglo[0][0] = profe1;
arreglo[0][1] = profe2;
arreglo[0][2] = profe3;
arreglo[1][0] = profe4;
arreglo[1][1] = profe5;
arreglo[1][2] = profe6;
arreglo[2][0] = profe7;
arreglo[2][1] = profe8;
arreglo[2][2] = profe9;
profeMenorEdad(arreglo);
}
//Aquí empieza el método para encontrar el profesor de menor edad.
public static void profeMenorEdad(Profesor matriz[][]) {
for(int i = 0; i <matriz.length; i++){
for(int j = 0; j < matriz.length; i++){
for(int x = 0; x < matriz.length; j++){
for(int y = 0; y < matriz.length; y++){
if(matriz[i][j].getEdad() > matriz[x][y].getEdad()){
Profesor aux = matriz[i][j];
matriz[i][j] = matriz[x][y];
matriz[x][y] = aux;
System.out.println(aux.getNombre());
}
}
}
}
}
}
Muchas gracias de antemano.
Valora esta pregunta


0