如何将多个(i,j)形式的坐标存入到一个二维数组里面,用java实现,求代码实现~~请高手受累帮忙

解决方案 »

  1.   

    具体说明一下坐标的形式,以及以什么样的方式给出的(args还是程序自定义)
      

  2.   

    是满足条件的多组(i,j)形式的坐标,现在是用一个一维数组求出的,形式是k = i * x + j;满足条件的i,j都取出来了,想再存入一个二维数组中
    不知道我说明白了么?
      

  3.   

    说实话还是不明白
    你坐标是以一维数组的形式给出的吗?{i1,j1,i2,j2,……}?
    你想存入的二维数组是什么形式的?
      

  4.   

    所有程序都是关于IPO: Input Process Output
    楼主要提供你的Input和Output,我们才能提供Process
      

  5.   

    就是满足array[k] = word的k那点,都得到之后,输出其中的i和j两点坐标,然后把i和j存入到二维数组中,就是一个新数组就像:a[m][n] = {{2,4},{6,9},{3,3},...}
      

  6.   


    public class test{ 

    public static void main(String[] args){

    int [] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 假设这是你的坐标(1,2),(3,4),……

    int [][] arr2 = new int[arr1.length / 2][2]; // 创建一个行为原数组长度一半,列为2的二维数组

    for (int i = 0; i < arr1.length; i++) {
    // 遍历原数组,赋值给新数组
    arr2[i / 2][i % 2] = arr1[i];
    }


    for (int i = 0; i < arr2.length; i++ ) {
    for (int j = 0; j < arr2[i].length; j++ ) {
    System.out.print(arr2[i][j] + " ");
    }
    System.out.println();
    }
    } }输出1 2 
    3 4 
    5 6 
    7 8 
    9 10 
      

  7.   

    public static int[] convent(int[] ImageSource, int width, int height) { int[] grayArray = new int[ImageSource.length]; for (int i = 0; i < height; i++) {
    for (int j = 0; j < width; j++) {
    int k = i * width + j;
    if((i > 22) && (i < height - 22)){

    if (ImageSource[k] == Constants.BLACK) {

    for(int a = 2; a < 7; a++){
    if(ImageSource[(i + a) * width + j] == Constants.BLACK){
    for(int b = 2; b <= 5; b ++){
    if(ImageSource[(i + a + b) * width + j] == Constants.WHITE){
    for(int c = 1; c <= 9; c++){
        if(ImageSource[(i + a + b + c) * width + j] == Constants.BLACK){
    grayArray[k] = Constants.RED;
    }
    }
    }
    }
    }
    }

    for(int x = 2; x < 8; x++){
    for(int x1 = x + 2; x1 < 10; x1++){
    for(int m = 2; m < 8; m++){
    for(int n = m + 1; n < 8; n++){
    for(int y = 2; y < 8; y++){
    for(int y1 = 2; y1 < 8; y1++){
    if (ImageSource[k + x] == Constants.WHITE) {
    grayArray[k] = Constants.RED;
    }
    }
    }
    }
    }
    }
    }

    } else {
    grayArray[k] = Constants.RED;
    }

    // if(grayArray[k] == Constants.RED){
    //
    // int array[][] = new int[20][2];
    //
    // for(int len = 0; len < array.length; len ++){
    // array[len] = grayArray[k];
    // for(int len1 = 0; len1 < array[len].length; len1++){
    // array[len][len1] = grayArray[k][]
    // }
    // }
    //
    // System.out.println("i = " + i + ",j = " + j);
    // for(int a = 0; a < 5; a++){
    // if(grayArray[k] == Constants.RED){
    // System.out.println("i = " + i + "; j = " + j);
    // }
    // }
    // }
    }
    }
    }
    return grayArray;
    }
      

  8.   

    得到i,j之后再把i,j放到array[][]中,后面不对,所以是注释的
      

  9.   

    好像有点不太满足,要不我把i放到一个一维数组中,j放到另一个一维数组中,然后把两个数组放到一个二维数组中,形成(i,j)形式的数组,a[m][n] = {{2,4},{6,9},{3,3},...}
    能行么?
      

  10.   

    a[i][j] = {{2,4},{6,9},{3,3},...} 
      

  11.   

    int [] arr1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 假设这是你的坐标(1,2),(3,4),……
    //...处理后
    arr2[][] = {{1,2},{3,4},{5,6},{7,8},{9,10}}
      

  12.   


            for (int i = 0; i < arr1.length; i++) {
                // 遍历原数组,赋值给新数组
                arr2[i / 2][i % 2] = arr1[i];
            }
      

  13.   

    恩,不过有个问题,我不是int[] arr = {i,j,i1,j1,i2,j2,i3,j3,....} 这种形式的数组啊 我只有k值,k = i * width + j,从而能得出i和j
      

  14.   

    你得出的i、j放在哪的?就是简单的i、j变量吗?
      

  15.   

    i和j是一幅图片的每个像素点的横纵坐标,能通过k值得到
      

  16.   

    就是能满足条件的i和j通过k值求出来了,然后想组合成(i,j)形式的坐标存成一个二维数组a[i][j] = {{2,4},{6,9},{3,3},...} 
      

  17.   

    强烈建议用List<Point>来 保存坐标点
      

  18.   

    i,j 是图片行列的index,但是你要返回int[], 中间干嘛还构造一个int[][]??