可以做一个对应表, 5,6,8,12,9分别对应1,2,3,4,5
然后用JAVA的随机数生成一个由1,2,3,4,5生成的五位数,
最后把这个五位数对应到你的5,6,8,12,9的排列顺序.
不知道这个能否满足你的要求!

解决方案 »

  1.   

    定义一个arraylist,用 random*list长度 随机取一个元素,然后删除取的元素,从新的list的继续取
      

  2.   

    public static void main(String args[]) {
        int[]x = {5,6,8,12,9};
        int j =0;
        int i1;
        int i2=-1;
        int i3=-1;
        int i4=-1;
        int i5=-1;
        i1 = (int)(Math.random()*5);
        while (  j < 5){
          i1 = (int)(Math.random()*5);
        if(i1!=i2 & i1!=i3 & i1!=i4 & i1!=i5)
        {
       System.out.println(x[i1] );
       i5 =i4;
       i4 =i3;
       i3 =i2;
       i2 =i1;
    j++;
        }
        }
      

  3.   

    leo_leehom(愤怒的橙子) 
    的方法不错比我想的好!
    呵呵
    但是指出一点多余的
    i1 = (int)(Math.random()*5); //这一句没有必要。
        while (  j < 5){
          i1 = (int)(Math.random()*5);
      

  4.   

    哦,的确多余,hehe.忘记删了.多谢提示
      

  5.   

    我有更好的方法了。
    呵呵
    import java.util.*;public class test3 {
      public test3() {
      }
      public static void main(String[] args){
        List list = new ArrayList();
        int r1 = 0;
        list.add("5");
        list.add("6");
        list.add("8");
        list.add("12");
        list.add("9");
        int s1 = list.size();
        for(int i=0;i<s1;i++){
          r1 = (int)(Math.random()*list.size());
          System.out.println(list.get(r1));
          list.remove(r1);
        }
        
      }
    }这样做资源占用低,
    而且绝对只有list.size()次选环,
    不存在判断重复的情况
    呵呵
    可以给分了。
      

  6.   

    注意题目要求的是:
    每个人访问的时候看到的都是随机排列的顺序.
    故mind_1220(大灰狼) 的方法不行吧?
      

  7.   

    呵呵,刚刚来,这是我回复的第一个帖子,感觉CSDN的确不错,很多热心的朋友在这里给我们这些菜鸟解决问题,我刚刚就看了  leo_leehom(愤怒的橙子)  和  mind_1220(大灰狼) 回复的程序,感觉对于我这样初学Java的人来说,收获不小,感谢中!
      

  8.   

    我运行过了大灰狼的程序,可以的啊,而且运行结果的确每次都不一样而且是随机的啊,应该是符合题目的要求的,个人感觉正确的。
     zhoushuer(小周一剑)你运行了大灰狼的程序了吗?
      

  9.   

    放到ArrayList中,然后调用Collections.shuffle(List list)
      

  10.   

    import java.util.*;
     class ArrySort{
       public static final int[] a = {5,6,8,12,9};
       private static Random rand = new Random();
       public static void main(String[] args){
       int[] b = new int[5];
       boolean[] picked = new boolean[a.length];
       for(int i=0;i<a.length;i++){
        int t;
       do
          t  = rand.nextInt(a.length);
       while(picked[t]);
       b[i] = a[t];
       picked[t] =true;
       System.out.println(b[i]);
       }
       }
    }
    完全可行!
      

  11.   

    Collections.shuffle(List list)
    我晕
    当我白说了前面的话。
    Java居然连这种东西都有现成的……
    程序员不混了
    ChDw(米) :
    真想和你交个朋友。
      

  12.   

    mind_1220(大灰狼) 
    能介绍一下Collections.shuffle(List list)
    怎么用吗,谢谢
      

  13.   

    daijunchenxiaoyue(学习Core Java中) :import java.util.*;
    public class test4 {
      public test4() {
      }
      public static void main(String[] args){
        List list = new ArrayList();
        int r1 = 0;
        list.add("5");
        list.add("6");
        list.add("8");
        list.add("12");
        list.add("9");
        Collections.shuffle(list);
        for(int i=0;i<list.size();i++){
          System.out.println(list.get(i));
        }
      }
    }明白了?
      

  14.   

    stl有shuffle这个东东,没想到java也有,不错.
      

  15.   

    Collections.shuffle(List list)
    这东东功能可强了呀
    喜欢~!!!