问题大概是这样的  假如说有一列数组 {1,2,3,4,5,6}
第一次我使用2 这个数字  然后将数字2从数组除去  数组变成{1,3,4,5,6}
第二次我使用5这个数字   然后将数字5从数组除去  数组变成{1,3,4,6}
依次类推  
用什么方法可以实现这样的功能呢?
望高手指点一下...

解决方案 »

  1.   

    循环,首先你可以用循环来寻找你用的这个数字在数组中的位置,然后把他后面的数组元素的值放到这个位置,这样循环下可以了。
    int[] s={1,2,3,4,5,6};
    //用的数字
    int a=2;
    for(int i=0;i<s.length;i++)
    {
       if(a==s[i])
        {
           for(int j=i;j<s.length-1;j++)
           {
               s[j]=j[j+1];
            }
        }
    }
    这只是一个思路
      

  2.   

    JAVA有高级数组(比如无序集,就可以实现你说的功能)哦 。。 你找找 绝对惊喜 但是效率没有数组高
      

  3.   

    public class Delete {
    public static void main(String[] args) {
    int[] arr = {1,2,3,4,5};
    print(arr);
    arr = delete(arr,2);
    print(arr);
    }

    /**
     * 打印数组
     * @param arr 要打印的数组
     */
    public static void print(int[] arr) {
    for(int i=0; i<arr.length; i++) {
    System.out.print(arr[i]);
    if(i < arr.length - 1) 
    System.out.print(",");
    }
    System.out.println();
    }

    /**
     * 从数组arr中删除数num,返回删除后的数组,如果没有要删除的数,则返回源数组arr
     * @param arr 源数组
     * @param num 要删除的数
     * @return 删除后的数组
     */
    public static int[] delete(int[] arr, int num) {
    boolean flag = false;
    int[] temp = new int[arr.length - 1];
    int j = 0;
    for(int i=0; i<temp.length; i++) {
    if(arr[j] == num) {
    flag = true;
    i--;
    j++;
    continue;
    }
    temp[i] = arr[j];
    j++;
    }
    if(flag)
    return temp;
    else 
    return arr;
    }
    }
      

  4.   

    集合类ArrayList就可以实现 翻翻书找到这块的知识看看就会了...
      

  5.   

    这道题, 直接用集合做很方便, LinkedList中提供了删除某个数的api!
      

  6.   

    别用数组 这个数组实现效率太低了
    建议使用map list  之类的collection 比较方便linkedList 这类的都可以 而且特别方便 就改变一次指针指向就可以删除
    而且对其他的数据没有影响你用数组的话,每次删除一个都要重新生成一个数组才行 所以效率就降低了很多