晕~~~怎么没人来啊。小弟在线等啊。真的很急!!
高手都去哪儿了??
如果用list不好使,那用别的方法也行啊。能解决问题就ok!!

解决方案 »

  1.   

    最后得到一个list,里面有4个不重复的随机数。这4个随机数是在0—i之间的。
      

  2.   

    public List getRandom(int i)throws Exception
    {
        List list = new ArrayList();
        java.util.Random random = new java.util.Random();
            
        for(int j=0;j<4;j++)
        {   
            int m = random.nextInt(i);
            String s = Integer.toString(m);         if(list.size() == 0)
                     list.add(s);
            else
                       {
                         if(list.contains(s)) j--;
                       }
        }
       return list;
    }
      

  3.   

    稍微改造了一下你的程序,抱歉:public List getRandom(int i) {
        List list = new ArrayList();
        Map map = new HashMap();
        java.util.Random random = new java.util.Random();    for (int j = 0; j < 4; j++) {
          int m = random.nextInt(i);
          String s = Integer.toString(m);
          if (map.isEmpty()) {
            map.put(s, "");
          } else if (map.containsKey(s)) {
            break;
          }
          map.put(s, "");
          list.add(s);
        }
        return list;
      }
      

  4.   

    public static List getRandom(int i)
            {
                List list = new ArrayList();
                java.util.Random random = new java.util.Random();            while (list.size() < 4) {
                  int m = random.nextInt(i);              String s = Integer.toString(m);
            
                  if (!list.contains(s)) {
                    list.add(s);
                  }
                }
               return list;
            }
      

  5.   

    public List getRandom(int i)
            {
                List list = new ArrayList();
                java.util.Random random = new java.util.Random();            while (list.size() < 4) {
                  int m = random.nextInt(i);              String s = Integer.toString(m);
            
                  if (!list.contains(s)) {
                    list.add(s);
                  }
                }
               return list;
            }
      

  6.   

    楼上chinajava(chinajava) ( ) 信誉:98 的程序经典,不过有点小问题,改造了一下:public List getRandom(int i) {
        List list = new ArrayList();
        java.util.Random random = new java.util.Random();    for (int j = 0; j < 4; j++) {
          int m = random.nextInt(i);
          String s = Integer.toString(m);
          System.out.println("s == " + s);
          if (list.size() == 0)
            list.add(s);
          else {
            if (list.contains(s))break;
            list.add(s);
          }
        }
        for (int i0 = 0; i0 < list.size(); i0++) {
          System.out.println("list(" + i0 + ")== " + list.get(i0));
        }
        return list;
      }
      

  7.   

    list.size() == 0 肯定不会包含s了,直接用if (!list.contains(s)) { list.add(s);}这样可以少一个判断,既然取4个数,所以可以不要用for,直接判断list的大小用while(list.size()<4)
      

  8.   

    感谢各位的大力帮助。问题解决了。是用duanzilin(寻)的方法解决的。
    其他方法都稍微有点问题。由于我的时间比较紧,就没详细记录和修改。
    小弟再次感谢各位!!