(计算每个雇员每周工作的小时數)假定所有雇员每周 工作的小时数存储在一个二维数组中。每行将一个雇 员 7天的工作时间记录在7 列中。例如:右面显示的 数组存储了 8 个雇员的工作时间。编写一个程序,按 照总工时降序的方式显示雇员和他们的总工时。通过Java创建新的类来实现
时间: 2024-10-12 14:15:00 浏览: 36
在Java中,我们可以创建一个新的类`Employee`来表示雇员,并包含工作时间和姓名属性。然后,我们可以创建一个二维数组`workHours`来存储每个员工的每周工作小时。为了按照总工时降序排序并显示员工信息,我们需要遍历数组,计算每个雇员的总工时,将其添加到一个`List<Employee>`中,最后对这个列表进行排序。
首先,定义一个`Employee`类:
```java
public class Employee {
String name;
int[] weeklyHours;
public Employee(String name, int[] weeklyHours) {
this.name = name;
this.weeklyHours = weeklyHours;
}
public int getTotalWorkHours() {
int total = 0;
for (int hours : weeklyHours) {
total += hours;
}
return total;
}
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", totalWorkHours=" + getTotalWorkHours() +
'}';
}
}
```
接着,处理二维数组和排序部分:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 假设二维数组格式如:[[40, 45, 42, 46, 48, 49, 47], [35, ...]]
int[][] workHoursArray = new int[8][7];
// 初始化雇员数据...
List<Employee> employees = new ArrayList<>();
for (int i = 0; i < workHoursArray.length; i++) {
int[] employeeWeeklyHours = Arrays.copyOfRange(workHoursArray[i], 0, 7);
employees.add(new Employee("Employee" + (i+1), employeeWeeklyHours));
}
Collections.sort(employees, Comparator.comparingInt(Employee::getTotalWorkHours).reversed());
for (Employee employee : employees) {
System.out.println(employee);
}
//
阅读全文