如何删除数组元素而不重复元素?

时间:2015-02-26 05:17:56

标签: java arrays

我需要从数组中删除某个索引处的学生,所以我要删除这个学生并将元素移到左边,但我的问题是一个元素是重复的。请注意,并非我的所有数组都已满,我通过该程序填充它,所以也许最后一个学生不是我的数组中的最后一个元素'

 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");
    }
}

4 个答案:

答案 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]。

enter image description here

我的建议是使用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");
}