RotateLeft用于java中的多维字符串数组

时间:2015-12-02 22:57:08

标签: java arrays multidimensional-array

我的代码是随机生成多维 我这一步 但是我希望通过一个班次为随机数组制作rotateLeft

这是我的数组

String  [][] Sec ={
                        {"S1","--","S5","S2","S4"},
                        {"S3","S4","S5","S3","S7"},
                        {"S1","--","S7","--","--"},
                        {"S2","--","S5","S6","S3"},
                        {"--","s1","S2","S6","S4"}
                        };

这是随机函数

for (int  i=0 ; i<Sec.length; i++ )
{
    for (int j=0 ; j<Sec[i].length; j++ )
    {
        int i1 = (int) (Math.random()* Sec.length);
        int j1 = (int) (Math.random()* Sec[i].length);

        String temp = Sec[i][j];
        Sec[i][j] =  Sec[i1][j1];
        Sec[i1][j1] =temp;

    } //end for 1
    }//end for2

这是随机数组的打印

for (int  i=0 ; i<Sec.length; i++ )
{

      System.out.print("p"+ r1++ +"     " );

    for (int j=0 ; j <Sec.length; j++ )
    {
        System.out.print(Sec[j][i] + "    ");

    }

现在我想要帮助我为这个随机数组制作rotateLeft并再次打印两次

输出结果为:

p1     S5    S6    S3    S1    S5    

p2     --    --    S6    S5    --    

p3     S4    S4    S7    S2    S4    

p4     S2    --    --    --    S3    

p5     S3    S7    s1    S2    S1  

我希望这样的随机出现(让一个人改变一下ELEMNT的顺序)

p1      S1     S5    S6    S3    S1        

p2      S5     --    --    S6    S5        

p3      --     S4    S4    S7    S2       

p4      S4     S2    --    --    --      

p5      S3     S3    S7    s1    S2   

1 个答案:

答案 0 :(得分:0)

如果你像这样旋转那么在平面阵列而不是矩阵上操作会更有意义。如果你这样做,那么你可以把数组的最后一个元素 LastE 并将其附加到数组的前面,删除最后一个元素。

// PSEUDOCODE
flat_array = matrix.flatten
LastE      = flat_array[len(flat_array)-1]
TailE      = flat_array.subset(0,len(flat_array)-2)

rotated    = TailE.prepend(LastE)

获得旋转的数组后,您可以将其转换回矩阵,或者只是对阵列进行操作,就像它是矩阵一样。