String apple11[] ={};
String apple12[] ={};
String apple13[] ={};
String apple21[] ={};
String apple22[] ={};
String apple23[] ={};
String apple31[] ={};
String apple32[] ={};
String apple33[] ={};
String apple41[] ={};
String apple42[] ={};
String apple43[] ={};如何实现从上面的4组数组中随即从每组中取出一个,然后将取出的4个数组进行去安排列呢?

解决方案 »

  1.   

    先用Random()再用for应该可以了
      

  2.   

    针对每一个数组,用Random.nextInt(),得到一个不大于数组长度的元素下标,这样就实现了随机索引数组元素。
    然后把这些元素丢进一个List里面,然后用Collections.sort(list)即可
      

  3.   

    for exampleString apple11[] ={"a", "1"};
    String apple12[] ={"b", "2"};
    String apple13[] ={"c", "3"};
    String apple21[] ={"d", "4"};
    String apple22[] ={"e", "5"};
    String apple23[] ={"f", "6"};
    String apple31[] ={"g", "7"};
    String apple32[] ={"h", "8"};
    String apple33[] ={"j", "9"};
    String apple41[] ={"k", "10"};
    String apple42[] ={"l", "11"};
    String apple43[] ={"m", "12"};String[][][] all = new String[][][]{
        {apple11,apple12,apple13},
        {apple21,apple22,apple23},
        {apple31,apple32,apple33},
        {apple41,apple42,apple43}
    };String[][] ranApple = new String[all.length][];
    for (int i=0; i<all.length; i++) {
        int random = (int)(Math.random()*all[i].length);
        ranApple[i] = all[i][random];
        System.out.printf("the %d th array of group %d: %s\n", random+1, i+1, Arrays.toString(ranApple[i]));
    }System.out.println("parade result");
    int[] idx = new int[ranApple.length];
    Arrays.fill(idx, 0);
    while (true) {
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<idx.length; i++) {
            if (idx[i] < ranApple[i].length) {
                sb.append(ranApple[i][idx[i]]);
            } else {
                sb.append("");
            }
            if (i < idx.length-1) {
                sb.append(",");
            }
        }
        System.out.println(sb.toString());    idx[idx.length-1]++;
        for (int i=idx.length-1; i>0; i--) {
            if (idx[i] >= ranApple[i].length) {
                idx[i] = 0;
                idx[i-1]++;
            }
        }
        if (idx[0] >= ranApple[0].length) {break;}
    }