我制作了 2 个一维数组,并且想要对二维数组的值进行排序,以便它们可以在一维数组之间进行划分。
就上下文而言,我正在制作一个程序,该程序利用用户输入创建一个二维数组来组织受薪和计时员工。
用户输入他们想要存储在employeeDatabase 中的雇员人数。然后他们输入 ID 号(employeeList),最后输入每个员工是受薪还是按小时(1 或 2),然后将这些数据存储到二维数组中。
举个例子,这里有一个示例员工数据库。
员工 ID | 薪水 (1) 或时薪 (2) |
---|---|
123456 | 1 |
654321 | 2 |
我希望它输出: 员工 123456 是受薪员工。 员工 654321 是小时工。
我想将employeeDatabase 中的值分成salaryedEmployees 和hourlyEmployees 数组,但我一直收到“ArrayIndexOutOfBoundsException: 0”数组。导致问题的代码片段如下。谢谢!
int salariedEmployeesSize = 0;
int hourlyEmployeesSize = 0;
int[] salariedEmployees = new int[salariedEmployeesSize];
int[] hourlyEmployees = new int[hourlyEmployeesSize];
for (int i = 0; i < employeeList.length - 1; i++) {
if (employeeDatabase[i][1] == 1) {
salariedEmployeesSize += 1;
salariedEmployees[i] = employeeDatabase[i][0];
} else if (employeeDatabase[i][1] == 2) {
hourlyEmployeesSize += 1;
hourlyEmployees[i] = employeeDatabase[i][0];
}
}
for (int i = 0; i < salariedEmployees.length - 1; i++) {
System.out.println("Employee " + salariedEmployees[i] + " is a salaried employee.");
}
for (int i = 0; i < hourlyEmployees.length - 1; i++) {
System.out.println("Employee " + hourlyEmployees[i] + " is an hourly employee.");
}
答案 0 :(得分:1)
每次添加元素时都必须调整数组的大小。 在 Java 中,这是通过以下方式完成的:
旧数组不会再被引用,会被 jvm 的垃圾回收器销毁。
注意:您的问题可能会被标记为重复,我鼓励您搜索答案:)
您可以搜索的参考文献: