Java 在同一类别中对用户输入和打印进行排序

Java 在同一类别中对用户输入和打印进行排序,java,arrays,sorting,printing,Java,Arrays,Sorting,Printing,我的作业是使用二维数组接收控制台输入的每个员工(总共8个)每周工作7天的小时数。然后,我要将所有输入相加,然后按降序打印出每个员工的总数 我已经知道如何按降序打印用户输入,只是我不知道如何将它们打印到相应的员工 import java.util.Scanner; 导入java.util.array; 公共类计算每周小时{ 公共静态void main(字符串[]args){ 扫描仪输入=新扫描仪(系统输入); int[][]寄存器=新int[8][7]; System.out.println(“为

我的作业是使用二维数组接收控制台输入的每个员工(总共8个)每周工作7天的小时数。然后,我要将所有输入相加,然后按降序打印出每个员工的总数

我已经知道如何按降序打印用户输入,只是我不知道如何将它们打印到相应的员工

import java.util.Scanner;
导入java.util.array;
公共类计算每周小时{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(系统输入);
int[][]寄存器=新int[8][7];
System.out.println(“为每位员工输入小时数”);
for(int i=0;i=0;k--){
系统输出打印(总小时数[k]+“”);
}
}
公共静态整数[]和(整数[][]总计){
整数[]总计=新整数[8];
对于(int i=0;i
它按降序打印所有内容

那么,如何将每个索引与员工关联呢

如果“按员工”是指输入员工详细信息的顺序,则可以使用内部类将员工详细信息存储为员工编号及其总工时,如下所示

class Employee{
    int employeeNo;
    int totalHours;
}
然后修改sum()方法以存储employee对象数组,而不是int数组(只能存储一个int)。下面是如何更改sum方法,如下所示

public static Employee[] sum(int[][] total){
    Employee[] totaled = new Employee[8];
    for (int i = 0; i < total.length; i++)
        Employee[i].employeeNo = i+1;
        for (int j = 0; j < total[i].length; j++)
            Employee[i].totalHours += total[i][j];
return totaled;
}
publicstaticemployee[]总和(int[]total){
员工[]总计=新员工[8];
对于(int i=0;i
一名员工一行?你能举一个输入和输出的例子吗?@xbit,是的,每个员工一行。只为3名员工输入:员工1:0,0,0,8,8,8,0员工2:0,8,8,8,0,0。雇员3:0,0,0,8,0。输出:employee 2:32,employee 1:24,employee 3:16我还没有学习对象,但这是本周的主题,所以我可能很快就能实现它。在这种情况下,如果您只想使用int数组实现,您可以在sum()方法中将二维总计数组定义为int[8][2]。这8名员工各有两个值,第一个是员工人数,第二个是总工时。尝试修改sum()方法来实现这种方法。听起来很简单。我觉得我可以将这些值放入2d数组中,但我不确定如何对其进行排序。因为需要对工时进行排序,并保留相应的员工编号,您可以将总小时数存储在单独的数组中,同时将其存储在多维数组中,并使用内置方法对该数组进行排序,然后使用循环将排序后的数组的值与另一个数组的值进行比较,并相应地打印。或者,如果您对学习排序算法感兴趣,您可以阅读并实现自己的排序方法。您可以在网上找到许多排序实现,因此您也可以下载其中一个并尝试修改它们。
public static Employee[] sum(int[][] total){
    Employee[] totaled = new Employee[8];
    for (int i = 0; i < total.length; i++)
        Employee[i].employeeNo = i+1;
        for (int j = 0; j < total[i].length; j++)
            Employee[i].totalHours += total[i][j];
return totaled;
}