【发布时间】:2014-03-31 15:46:18
【问题描述】:
我需要用一个方法编写一个程序,该方法接收一个二维 3*3 数组,其中包含几个教授的信息(在一个名为“Profesor”的类中创建。信息包括他们的 ID、姓名、姓氏、年龄、性别、工作小时数以及他们每小时赢多少,按照构造函数设置的特定顺序),并以两种不同的方法按年龄和日薪对他们进行排序。它们的信息是通过构造函数提供的。此外,他们的日薪是使用 Salary() 方法(在“Profesor”类中)计算的,该方法返回小时数乘以他们每小时的收入。 到目前为止,这是我的代码:
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", 28, "M", 8, 0);
profe1.setMoneyPerHour(1.66);
Profesor profe2 = new Profesor(233849920, "Nuria", "Ramírez", 52, "F", 4, 0);
profe2.setMoneyPerHour(2.43);
Profesor profe3 = new Profesor(126509404, "José", "Hernandez", 29, "M", 8, 0);
profe3.setMoneyPerHour(1.84);
Profesor profe4 = new Profesor(126509404, "Arlene", "Hernandez", 34, "F", 6, 0);
profe4.setMoneyPerHour(2.00);
Profesor profe5 = new Profesor(126509404, "Orlando", "Hernandez", 36, "M", 10, 0);
profe5.setMoneyPerHour(1.66);
Profesor profe6 = new Profesor(126509404, "Ximena", "Hernandez", 55, "F", 4, 0);
profe6.setMoneyPerHour(2.30);
Profesor profe7 = new Profesor(126509404, "Eduardo", "Hernandez", 44, "M", 8, 0);
profe7.setMoneyPerHour(1.66);
Profesor profe8 = new Profesor(126509404, "Johanna", "Hernandez", 35, "F", 8, 0);
profe8.setMoneyPerHour(1.66);
Profesor profe9 = new Profesor(126509404, "Gilberto", "Hernandez", 42, "M", 8, 0);
profe9.setMoneyPerHour(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;
工资计算方法如下:
public double salary(){
double salary = hours*moneyPerHour;
return salary;
}
这是我迄今为止尝试对数组进行排序的方法,根据我们在课堂上学到的内容:
public static void ordenaProfes(Profesor matrix[][]) {
int ix = 0;
int jx = 0;
double minorSalary= matriz[0][0].salary();
int n = matrix.length;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
double aux= matrix[i][i].salary();
if(aux < minorSalary){
ix = i;
jx = j;
minorSalary = aux;
}
}
}
但是使用它是行不通的。它不对数组进行排序,只返回 arreglo[0][0] 处的薪水。
【问题讨论】:
-
那么...你尝试了什么?
-
真正的问题是什么?如何对数组进行排序?
-
为什么这是一个二维数组?使其成为一维并正常排序。
-
对不起,我不知道为什么我解释我所尝试的部分没有发布。 @AnubianNoob 我们正在练习二维数组,所以我不能使用一维数组。
-
你应该如何对二维数组进行排序?你能解释一下吗?
标签: java arrays sorting multidimensional-array