我需要从数组中删除某个索引处的学生,所以我要删除这个学生并将元素移到左边,但我的问题是一个元素是重复的。请注意,并非我的所有数组都已满,我通过该程序填充它,所以也许最后一个学生不是我的数组中的最后一个元素'
public static void removestudent(int index) {
for (int j = index; j < employee.length - 1; j++) {
employee[j] = employee[j + 1];
}
System.out.println("The student was removed successfully");
}
}
答案 0 :(得分:3)
在分配employee[j] = employee[j + 1];
时,值会重复,因此当循环终止时employee[j + 1]
保持不变!所以重复的值。循环后将employee[j + 1]
分配给空。
答案 1 :(得分:1)
在您的代码中,看起来像最后两个元素,位于employee [j]和employee [j + 1] resp。正在重复。
您必须删除employee [j + 1]处的元素,因为它已被复制到位置employee [j]。
我的建议是使用ArrayList,因为它已经处理了这种情况。
_Thanks, 普山
答案 2 :(得分:0)
public static void removestudent(String index) {
int temp[];
for (int j = 0; j < employee.length - 1; j++) {
if(j<index){
temp[j] = employee[j];
}else
{
temp[j] =employee[j++];
}
}
System.out.println("The student was removed successfully");
employee = temp;
}
}
答案 3 :(得分:0)
你可以遵循不同的方法。就像这样....!
public static void main(String args[]) {
String [] employee={"a","b","c","d","e"};
Set<String> s =new LinkedHashSet<String>();
int index=4;
for(int i=0;i<employee.length;i++)
{ if(i!=index)
{
s.add(employee[i]);
}
}
System.out.println(s);
System.out.println("The student was removed successfully");
}