簡體   English   中英

將數組值映射到另一個數組

[英]Mapping an arrays values to another array

我有一個稱為input 2d數組,我試圖在另一個數組中映射不同的數字以對其進行更改。 在2d數組mapping它包含我要執行的所有映射。第一個數組是{0,2,3,4,1,5} ,我想使用它來更改input的值,因此每個1變為2 ,以及2到3以及3到4以及4到1。我在該映射數組中有23個不同的映射,我想更改input的值。 到目前為止,這是我嘗試過的。

 public static int [][] mapOrientation(int input[][]){
    int [][] input = {{0,0,0,5},{4,1,1,4},{2,2,0,2},{1,2,3,5},{3,3,3,4},{1,5,5,4}};

     int[][] mapping ={{0,2,3,4,1,5},{1,2,0,4,5,3},{5,2,1,4,3,0},{3,2,5,4,0,1},
                       {3,5,4,0,2,1},{2,5,3,0,1,4},{1,5,2,0,4,3},{4,5,1,0,3,2},
                       {4,1,0,3,5,2},{5,1,4,3,2,0},{2,1,5,3,0,4},{0,1,2,3,4,5},
                       {0,4,1,2,3,5},{3,4,0,2,5,1},{5,4,3,2,1,0},{1,4,5,2,0,3},
                       {1,0,4,5,2,3},{2,0,1,5,3,4},{3,0,2,5,4,1},{4,0,3,5,1,2},
                       {4,1,0,3,5,2},{5,1,4,3,2,0},{2,1,5,3,0,4}};

    int [] comb = mapping[0];
    for(int i = 0; i < input.length; i++){
        for(int j = 0; j < input[i].length; j++){

            input[i][j] = comb[0];
            System.out.println(comb[0]);
            System.out.println(Arrays.deepToString(input));

   cubeToString = Arrays.deepToString(input);

    return input;
}

如果還不清楚我的目標是改變input

int [][] input ={{5,1,2,0},{2,0,1,4},{1,2,5,5},{3,0,1,3},{4,3,0,4},{3,2,5,4}} 

至:

int [][] input ={{5,2,3,0},{3,0,2,1},{2,3,5,5},{4,0,2,4},{1,4,0,1},{4,3,5,1}}

這就是我想要使用comb[0]

您的問題是與此行:

 input[i][j] = comb[0];

您正在將值設置為始終等於映射的第一項。 你真正想要的是

 input[i][j] = comb[input[i][j]];

可運行的例子

public class NewClass
{
    public static void main(String... args)
    {
        int[][] input = {{5,1,2,0},{2,0,1,4},{1,2,5,5},{3,0,1,3},{4,3,0,4},{3,2,5,4}};
        mapOrientation(input);
    }

    public static int [][] mapOrientation(int input[][])
    {
        int[][] mappings ={{0,2,3,4,1,5},{1,2,0,4,5,3},{5,2,1,4,3,0},{3,2,5,4,0,1},
                           {3,5,4,0,2,1},{2,5,3,0,1,4},{1,5,2,0,4,3},{4,5,1,0,3,2},
                           {4,1,0,3,5,2},{5,1,4,3,2,0},{2,1,5,3,0,4},{0,1,2,3,4,5},
                           {0,4,1,2,3,5},{3,4,0,2,5,1},{5,4,3,2,1,0},{1,4,5,2,0,3},
                           {1,0,4,5,2,3},{2,0,1,5,3,4},{3,0,2,5,4,1},{4,0,3,5,1,2},
                           {4,1,0,3,5,2},{5,1,4,3,2,0},{2,1,5,3,0,4}};

        System.out.println("Before");
        System.out.println(Arrays.deepToString(input));

        int[] mapping = mappings[0];
        for(int i = 0; i < input.length; i++)
        {
            for(int j = 0; j < input[i].length; j++)
            {
                input[i][j] = mapping[input[i][j]];
            }
        }

        System.out.println("After");
        System.out.println(Arrays.deepToString(input));

        //cubeToString = Arrays.deepToString(input);

        return input;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM