原先有一个为array[1000][2]的数组;现在要从第五百数开始复制到另一个二维数组,到550结束;
for (int num_Min = 0; 500 < num_Found ||num_Found < 550; num_Min++, num_Found++){
for(int i = 0; i < 2; i++){
          array_Clone[num_Min][i] = array[num_Found][i];
}
}我这样试了下,提示异常,为什么?
新手求救
PS:Array 自带的clone 方法可以实现么?

解决方案 »

  1.   

    可以把所有的代码都给上来吗?
    clone是Array继承是Object超类里的方法,应该不能直接可以实现吧。
      

  2.   


    int num_Found = 499;
    double array_Left[][] = new double[50][2];

    for (int num_Min = 0; 
    498 < num_Found ||num_Found < 548; 
    num_Min++, num_Found++){
    for(int i = 0; i < 2; i++){
    array_Left[num_Min][i] = array[num_Found][i];
    }
    }
      

  3.   

    用System.arraycopy()方法,不用循环性能很高:
            int[][] data = new int[][] { {1, 2}, {1, 3}, {1, 4}, {2, 3}};
            int[][] data2 = new int[2][2];
            System.arraycopy(data, 2, data2, 0, 2);
      

  4.   

    这个可以指定位置的数组复制?比如说 从你的数组data 中 复制 2到3之间的数组
      

  5.   

    可以指定位置.public static void arraycopy(Object src, //源数组
                                 int srcPos,//源数组开始copy的位置
                                 Object dest,//目标数组
                                 int destPos,//目标数组开始位置
                                 int length)//copy的长度
      

  6.   


    当然可以啊,从数组data中复制2到3之间的数组这样写:
    int[][] data = new int[][] { {1, 2}, {1, 3}, {1, 4}, {2, 3}};
    int[][] data2 = new int[2][2];
    System.arraycopy(data, 1, data2, 0, 2);
      

  7.   


    public static void main(String[] args) {
    arrayCopy();
    } private static void arrayCopy() {
    int count=3;
    int[][] a=new int[][]{{0,0},{1,1},{2,2},{3,3},{4,4},{5,5},{6,6},{7,7},{8,8},{9,9},{10,10}};
    int[][] b=new int[count][a[0].length];
    System.arraycopy(a, 5, b, 0, count);
    for(int i=0;i<b.length;i++){
    for(int k=0;k<b[i].length;k++){
    System.out.print(b[i][k]+"   ");
    }
    System.out.println();
    }
    }
    //输出:  
          5   5
          6   6
          7   7
    你想考呗多少数组,只需更改count数即可,我这里考呗的是三组二维数组