一个数组{'A','B','C','D'}要怎么排序依次循环得到
{'A','B','C','D'}
{'D','A','B','C'}
{'C','D','A','B'}
{'B','C','D','A'}
{'A','B','C','D'}
     .
     .
     .请问 高手们该怎么写呀

解决方案 »

  1.   


    char[] c = {'A','B','C','D'};
    for(int int=0;i<c.length;i++){
        char ch = c[0];
        for(int j=1;i<c.length;j++){
           c[j-1] = c[j];
        }
        c[c.length-1] = ch;
        System.out.println(Arrays.toString(c));
    }
      

  2.   

    List<String> l=Arrays.asList(new String[]{"a","b","c","d"});

    for(int i=0;i<l.size();i++){
      Collections.rotate(l, 1);
      System.out.println(l);
    }
      

  3.   

    楼上的,你的方法很精妙,但不是我要的,我没说明白,不好意思
    我的意思是一个原始数组{'A','B','C','D'}
    当第一排序时得到{'D','A','B','C'} 
    第二次排序时得到{'C','D','A','B'} 
    第三次排序时得到{'B','C','D','A'} 
    依次类推
      

  4.   


    char[] c = {'A','B','C','D'};
    for(int int=0;i<c.length;i++){
        char ch = c[c.length-1];
        for(int j=0;i<c.length-1;j++){
           c[j+1] = c[j];
        }
        c[0] = ch;
        System.out.println(Arrays.toString(c));
    }
      

  5.   

    public class PaiXu {
    public static void main(String args[]){

            char ch[]={'A','B','C','D'};
            char temp;
            for(int i=0;i<ch.length;i++){
             temp=ch[0];
             for(int j=0;j<ch.length-1;j++){
            
             ch[j]=ch[j+1];
             ch[j+1]=temp;
             System.out.print(ch[j]);
            
             }
             System.out.println(temp);
    }
    }}
    上我的,通俗易懂,呵呵!
      

  6.   

    4楼你的第一个for应该是int i=0吧,还有c[j+1] = c[j];这一句貌似是越界了
      

  7.   


    char[] c = {'A','B','C','D'};
    for(int i=0;i<c.length;i++){
        char ch = c[c.length-1];
        for(int j=c.length-2;j>=0;j--){
          c[j+1] = c[j];
        }
        c[0] = ch;
        System.out.println(Arrays.toString(c));
    }
      

  8.   

    循环拷贝??
    public class TestA {
    public static void main(String[] args) {
    char[] c = { 'A', 'B', 'C', 'D' };

    int j = 0;
    while (true) {
    char[] t = new char[c.length];
    System.arraycopy(c, 0, t, 1, 3);
    t[0]=c[c.length-1];
    c = t;
    j++;

    if (j == 10) {
    break;
    }

    System.out.println(t);
    }
    }
    }