我需要编写一个eMinus方法,但是我遇到了很多错误。贝娄是我的代码。我非常感谢一些建议。
编写一个方法eMinus,它接受一个int索引作为参数并返回一个Employee数组。返回的数组应该是一个小于e的元素,并且索引索引处没有元素。否则,返回数组中的元素应保持与e中相同的顺序。要删除索引索引处的元素,请使用:e = eMinus(index);
import java.util.Scanner;
import java.util.ArrayList;
public class Controller2 {
//Data Members
Employee2 [] e = new Employee2 [0];
int counter = 0; //int variable = counter
Scanner scanner = new Scanner(System.in);
//Method eMinus
int[] eMinus (int index, Employee2 [] e) {
int [] Employee3 = new int [e.length - 1 ];
for (int loop = 0 ; loop < index; loop++)
Employee3[loop] = e[loop];
for (int loop = index + 1; loop < e.length; loop++)
Employee3[loop-1]=Employee2[loop];
return Employee3;//employee array
}
答案 0 :(得分:0)
eMinus看起来应该几乎可以工作,除了你创建并返回一个整数数组(称为Employee3)而不是Employee2s数组。
Employee2[] eMinus(int index, Employee2[] input) {
Employee2[] result = new Employee2[input.length - 1];
for (int i = 0 ; i < index; i++)
result[i] = input[i];
for (int i = index + 1; i < input.length; i++)
result[i - 1] = input[i];
return result;
}
您使用的名称表明您可能对类型,数组和变量感到有些困惑。尝试阅读区别是什么,以及您是否需要拥有Employee,Employee2和Employee3(答案很可能是否)。
答案 1 :(得分:0)
要删除索引索引处的元素,请使用:e = eMinus(index);
这是否意味着您没有将数组传递给您的eMinus方法但是处理实例变量?。
虽然,如果您知道要修改它,我找不到任何使用数组的理由(在您的情况下有更多合适的数据结构可以处理),我会这样做:
Employee2[] empls = new Employee2 [0]; // btw, why are you creating an empty array here?
Employee2[] eMinus(int index) throws Exception {
if (empls == null) {
// return an empty array or some valid exception
// or whatever you want to deal with this situation
}
if (index < 0 || index > empls.length-1) {
// return an empty array or some valid exception
// or whatever you want to deal with this situation
}
Employee2[] result = new Employee2[empls.length - 1];
int c = 0;
for (int i = 0; i < empls.length; i++) {
if (i != index) {
result[c++] = empls[i];
}
}
return new result;
}